summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSimon Rettberg2016-05-04 18:27:28 +0200
committerSimon Rettberg2016-05-04 18:27:28 +0200
commit80424b29e00609bf837119fa810b5afdadf2b4e9 (patch)
treee59c49265aeb219c4137bdf21e71262201345b99
parentWIP (diff)
downloadslx-admin-80424b29e00609bf837119fa810b5afdadf2b4e9.tar.gz
slx-admin-80424b29e00609bf837119fa810b5afdadf2b4e9.tar.xz
slx-admin-80424b29e00609bf837119fa810b5afdadf2b4e9.zip
Work on translations: templates and messages work
-rw-r--r--.gitignore1
-rw-r--r--inc/dictionary.inc.php9
-rw-r--r--inc/message.inc.php3
-rw-r--r--inc/module.inc.php33
-rw-r--r--inc/render.inc.php7
-rw-r--r--modules-available/adduser/lang/de/template-tags.json (renamed from modules-available/adduser/lang/de/templates/page-adduser.json)0
-rw-r--r--modules-available/adduser/lang/en/module.json8
-rw-r--r--modules-available/adduser/lang/en/template-tags.json (renamed from modules-available/adduser/lang/en/templates/page-adduser.json)0
-rw-r--r--modules-available/adduser/lang/pt/template-tags.json (renamed from modules-available/adduser/lang/pt/module.json)0
-rw-r--r--modules-available/backup/lang/de/module.json4
-rw-r--r--modules-available/backup/lang/de/template-tags.json (renamed from modules-available/backup/lang/de/templates/_page.json)7
-rw-r--r--modules-available/backup/lang/de/templates/restore.json8
-rw-r--r--modules-available/backup/lang/en/module.json11
-rw-r--r--modules-available/backup/lang/en/template-tags.json (renamed from modules-available/backup/lang/en/templates/_page.json)8
-rw-r--r--modules-available/backup/lang/en/templates/restore.json8
-rw-r--r--modules-available/backup/lang/pt/module.json11
-rw-r--r--modules-available/backup/lang/pt/template-tags.json13
-rw-r--r--modules-available/baseconfig/hooks/translation.inc.php39
-rw-r--r--modules-available/baseconfig/lang/de/template-tags.json (renamed from modules-available/baseconfig/lang/de/templates/_page.json)0
-rw-r--r--modules-available/baseconfig/lang/en/module.json24
-rw-r--r--modules-available/baseconfig/lang/en/template-tags.json27
-rw-r--r--modules-available/baseconfig/lang/en/templates/_page.json7
-rw-r--r--modules-available/baseconfig/lang/pt/module.json24
-rw-r--r--modules-available/baseconfig/lang/pt/template-tags.json26
-rw-r--r--modules-available/citymanagement/lang/en/module.json11
-rw-r--r--modules-available/citymanagement/lang/en/template-tags.json13
-rw-r--r--modules-available/citymanagement/lang/en/templates/citymanagement.json13
-rw-r--r--modules-available/citymanagement/lang/pt/module.json11
-rw-r--r--modules-available/citymanagement/lang/pt/template-tags.json13
-rw-r--r--modules-available/dozmod/lang/de/template-tags.json43
-rw-r--r--modules-available/dozmod/lang/de/templates/images-delete.json12
-rw-r--r--modules-available/dozmod/lang/de/templates/mailconfig.json21
-rw-r--r--modules-available/dozmod/lang/de/templates/orglist.json6
-rw-r--r--modules-available/dozmod/lang/de/templates/userlist.json12
-rw-r--r--modules-available/dozmod/lang/en/template-tags.json43
-rw-r--r--modules-available/dozmod/lang/en/templates/images-delete.json12
-rw-r--r--modules-available/dozmod/lang/en/templates/mailconfig.json21
-rw-r--r--modules-available/dozmod/lang/en/templates/orglist.json6
-rw-r--r--modules-available/dozmod/lang/en/templates/userlist.json12
-rw-r--r--modules-available/eventlog/lang/de/template-tags.json (renamed from modules-available/eventlog/lang/de/templates/_page.json)0
-rw-r--r--modules-available/eventlog/lang/en/module.json4
-rw-r--r--modules-available/eventlog/lang/en/template-tags.json (renamed from modules-available/eventlog/lang/en/templates/_page.json)0
-rw-r--r--modules-available/eventlog/lang/pt/module.json4
-rw-r--r--modules-available/eventlog/lang/pt/template-tags.json6
-rw-r--r--modules-available/imgmanagement/lang/pt/template-tags.json (renamed from modules-available/main/lang/de/templates/messagebox-error.json)0
-rw-r--r--modules-available/internetaccess/lang/de/template-tags.json (renamed from modules-available/internetaccess/lang/de/templates/_page.json)5
-rw-r--r--modules-available/internetaccess/lang/de/templates/restart.json5
-rw-r--r--modules-available/internetaccess/lang/en/template-tags.json (renamed from modules-available/internetaccess/lang/en/templates/_page.json)5
-rw-r--r--modules-available/internetaccess/lang/en/templates/restart.json5
-rw-r--r--modules-available/locations/lang/de/template-tags.json (renamed from modules-available/locations/lang/de/templates/location-subnets.json)11
-rw-r--r--modules-available/locations/lang/de/templates/locations.json10
-rw-r--r--modules-available/locations/lang/de/templates/subnets.json7
-rw-r--r--modules-available/locations/lang/en/template-tags.json (renamed from modules-available/locations/lang/en/templates/location-subnets.json)11
-rw-r--r--modules-available/locations/lang/en/templates/locations.json10
-rw-r--r--modules-available/locations/lang/en/templates/subnets.json7
-rw-r--r--modules-available/main/lang/de/module.json6
-rw-r--r--modules-available/main/lang/de/template-tags.json35
-rw-r--r--modules-available/main/lang/de/templates/dialog-generic.json3
-rw-r--r--modules-available/main/lang/de/templates/main-menu.json22
-rw-r--r--modules-available/main/lang/de/templates/messagebox-info.json1
-rw-r--r--modules-available/main/lang/de/templates/messagebox-success.json1
-rw-r--r--modules-available/main/lang/de/templates/messagebox-warning.json1
-rw-r--r--modules-available/main/lang/de/templates/page-main-guest.json7
-rw-r--r--modules-available/main/lang/de/templates/page-main.json11
-rw-r--r--modules-available/main/lang/en/module.json13
-rw-r--r--modules-available/main/lang/en/template-tags.json41
-rw-r--r--modules-available/main/lang/en/templates/dialog-generic.json3
-rw-r--r--modules-available/main/lang/en/templates/main-menu.json28
-rw-r--r--modules-available/main/lang/en/templates/messagebox-warning.json2
-rw-r--r--modules-available/main/lang/en/templates/page-main-guest.json7
-rw-r--r--modules-available/main/lang/en/templates/page-main.json11
-rw-r--r--modules-available/main/lang/pt/template-tags.json (renamed from modules-available/main/lang/pt/module.json)2
-rw-r--r--modules-available/main/templates/main-menu.html2
-rw-r--r--modules-available/minilinux/lang/de/template-tags.json (renamed from modules-available/minilinux/lang/de/templates/filelist.json)2
-rw-r--r--modules-available/minilinux/lang/de/templates/download.json1
-rw-r--r--modules-available/minilinux/lang/de/templates/page-minilinux.json4
-rw-r--r--modules-available/minilinux/lang/en/module.json9
-rw-r--r--modules-available/minilinux/lang/en/template-tags.json (renamed from modules-available/minilinux/lang/en/templates/filelist.json)2
-rw-r--r--modules-available/minilinux/lang/en/templates/download.json2
-rw-r--r--modules-available/minilinux/lang/en/templates/page-minilinux.json4
-rw-r--r--modules-available/minilinux/lang/pt/module.json9
-rw-r--r--modules-available/minilinux/lang/pt/template-tags.json11
-rw-r--r--modules-available/news/lang/de/template-tags.json (renamed from modules-available/news/lang/de/templates/page-news.json)0
-rw-r--r--modules-available/news/lang/en/module.json9
-rw-r--r--modules-available/news/lang/en/template-tags.json (renamed from modules-available/news/lang/en/templates/page-news.json)1
-rw-r--r--modules-available/news/lang/pt/module.json10
-rw-r--r--modules-available/news/lang/pt/template-tags.json12
-rw-r--r--modules-available/serversetup/lang/de/template-tags.json (renamed from modules-available/serversetup/lang/de/templates/ipxe.json)9
-rw-r--r--modules-available/serversetup/lang/de/templates/ipaddress.json7
-rw-r--r--modules-available/serversetup/lang/de/templates/ipxe_update.json4
-rw-r--r--modules-available/serversetup/lang/en/module.json31
-rw-r--r--modules-available/serversetup/lang/en/template-tags.json (renamed from modules-available/serversetup/lang/en/templates/ipxe.json)9
-rw-r--r--modules-available/serversetup/lang/en/templates/ipaddress.json7
-rw-r--r--modules-available/serversetup/lang/en/templates/ipxe_update.json4
-rw-r--r--modules-available/serversetup/lang/pt/module.json37
-rw-r--r--modules-available/serversetup/lang/pt/template-tags.json (renamed from modules-available/serversetup/lang/pt/templates/ipxe-adv.json)13
-rw-r--r--modules-available/session/lang/de/template-tags.json (renamed from modules-available/session/lang/de/templates/page-login.json)0
-rw-r--r--modules-available/session/lang/en/module.json8
-rw-r--r--modules-available/session/lang/en/template-tags.json (renamed from modules-available/session/lang/en/templates/page-login.json)0
-rw-r--r--modules-available/session/lang/pt/template-tags.json (renamed from modules-available/session/lang/pt/module.json)0
-rw-r--r--modules-available/statistics/lang/de/module.json6
-rw-r--r--modules-available/statistics/lang/de/template-tags.json69
-rw-r--r--modules-available/statistics/lang/de/templates/clientlist.json14
-rw-r--r--modules-available/statistics/lang/de/templates/cpumodels.json6
-rw-r--r--modules-available/statistics/lang/de/templates/id44.json5
-rw-r--r--modules-available/statistics/lang/de/templates/kvmstate.json5
-rw-r--r--modules-available/statistics/lang/de/templates/machine-hdds.json13
-rw-r--r--modules-available/statistics/lang/de/templates/machine-main.json26
-rw-r--r--modules-available/statistics/lang/de/templates/machine-notes.json4
-rw-r--r--modules-available/statistics/lang/de/templates/machine-usage.json4
-rw-r--r--modules-available/statistics/lang/de/templates/memory.json5
-rw-r--r--modules-available/statistics/lang/de/templates/newclients.json4
-rw-r--r--modules-available/statistics/lang/de/templates/summary.json6
-rw-r--r--modules-available/statistics/lang/de/templates/syslog.json7
-rw-r--r--modules-available/statistics/lang/en/template-tags.json69
-rw-r--r--modules-available/statistics/lang/en/templates/clientlist.json14
-rw-r--r--modules-available/statistics/lang/en/templates/cpumodels.json6
-rw-r--r--modules-available/statistics/lang/en/templates/id44.json5
-rw-r--r--modules-available/statistics/lang/en/templates/kvmstate.json5
-rw-r--r--modules-available/statistics/lang/en/templates/machine-hdds.json13
-rw-r--r--modules-available/statistics/lang/en/templates/machine-main.json26
-rw-r--r--modules-available/statistics/lang/en/templates/machine-notes.json4
-rw-r--r--modules-available/statistics/lang/en/templates/machine-usage.json4
-rw-r--r--modules-available/statistics/lang/en/templates/memory.json5
-rw-r--r--modules-available/statistics/lang/en/templates/newclients.json4
-rw-r--r--modules-available/statistics/lang/en/templates/summary.json6
-rw-r--r--modules-available/statistics/lang/en/templates/syslog.json7
-rw-r--r--modules-available/support/lang/en/module.json3
-rw-r--r--modules-available/support/lang/pt/module.json15
-rw-r--r--modules-available/support/lang/pt/template-tags.json17
-rw-r--r--modules-available/sysconfig/lang/de/template-tags.json97
-rw-r--r--modules-available/sysconfig/lang/de/templates/_page.json28
-rw-r--r--modules-available/sysconfig/lang/de/templates/ad-finish.json7
-rw-r--r--modules-available/sysconfig/lang/de/templates/ad-selfsearch.json10
-rw-r--r--modules-available/sysconfig/lang/de/templates/ad-start.json23
-rw-r--r--modules-available/sysconfig/lang/de/templates/ad_ldap-checkconnection.json8
-rw-r--r--modules-available/sysconfig/lang/de/templates/ad_ldap-checkcredentials.json6
-rw-r--r--modules-available/sysconfig/lang/de/templates/branding-check.json5
-rw-r--r--modules-available/sysconfig/lang/de/templates/branding-start.json9
-rw-r--r--modules-available/sysconfig/lang/de/templates/cfg-finish.json4
-rw-r--r--modules-available/sysconfig/lang/de/templates/cfg-start.json7
-rw-r--r--modules-available/sysconfig/lang/de/templates/config-module-list.json4
-rw-r--r--modules-available/sysconfig/lang/de/templates/custom-filelist.json3
-rw-r--r--modules-available/sysconfig/lang/de/templates/custom-fileselect.json5
-rw-r--r--modules-available/sysconfig/lang/de/templates/custom-upload.json8
-rw-r--r--modules-available/sysconfig/lang/de/templates/ldap-checkconnection.json5
-rw-r--r--modules-available/sysconfig/lang/de/templates/ldap-checkcredentials.json6
-rw-r--r--modules-available/sysconfig/lang/de/templates/ldap-finish.json6
-rw-r--r--modules-available/sysconfig/lang/de/templates/ldap-start.json16
-rw-r--r--modules-available/sysconfig/lang/de/templates/sshconfig-start.json10
-rw-r--r--modules-available/sysconfig/lang/de/templates/start.json4
-rw-r--r--modules-available/sysconfig/lang/en/module.json1
-rw-r--r--modules-available/sysconfig/lang/en/template-tags.json113
-rw-r--r--modules-available/sysconfig/lang/en/templates/_page.json28
-rw-r--r--modules-available/sysconfig/lang/en/templates/ad-finish.json7
-rw-r--r--modules-available/sysconfig/lang/en/templates/ad-selfsearch.json10
-rw-r--r--modules-available/sysconfig/lang/en/templates/ad-start.json23
-rw-r--r--modules-available/sysconfig/lang/en/templates/ad_ldap-checkconnection.json8
-rw-r--r--modules-available/sysconfig/lang/en/templates/ad_ldap-checkcredentials.json6
-rw-r--r--modules-available/sysconfig/lang/en/templates/ad_ldap-homedir.json18
-rw-r--r--modules-available/sysconfig/lang/en/templates/branding-check.json5
-rw-r--r--modules-available/sysconfig/lang/en/templates/branding-start.json9
-rw-r--r--modules-available/sysconfig/lang/en/templates/cfg-finish.json4
-rw-r--r--modules-available/sysconfig/lang/en/templates/cfg-start.json6
-rw-r--r--modules-available/sysconfig/lang/en/templates/config-module-list.json4
-rw-r--r--modules-available/sysconfig/lang/en/templates/custom-filelist.json3
-rw-r--r--modules-available/sysconfig/lang/en/templates/custom-fileselect.json5
-rw-r--r--modules-available/sysconfig/lang/en/templates/custom-upload.json8
-rw-r--r--modules-available/sysconfig/lang/en/templates/ldap-checkconnection.json5
-rw-r--r--modules-available/sysconfig/lang/en/templates/ldap-checkcredentials.json6
-rw-r--r--modules-available/sysconfig/lang/en/templates/ldap-finish.json6
-rw-r--r--modules-available/sysconfig/lang/en/templates/ldap-start.json16
-rw-r--r--modules-available/sysconfig/lang/en/templates/sshconfig-start.json10
-rw-r--r--modules-available/sysconfig/lang/en/templates/start.json4
-rw-r--r--modules-available/sysconfig/lang/pt/module.json35
-rw-r--r--modules-available/sysconfig/lang/pt/template-tags.json37
-rw-r--r--modules-available/sysconfignew/lang/en/template-tags.json (renamed from modules-available/sysconfignew/lang/en/module.json)0
-rw-r--r--modules-available/sysconfignew/lang/pt/template-tags.json (renamed from modules-available/sysconfignew/lang/pt/module.json)0
-rw-r--r--modules-available/syslog/lang/de/module.json6
-rw-r--r--modules-available/syslog/lang/de/template-tags.json (renamed from modules-available/syslog/lang/de/templates/page-syslog.json)0
-rw-r--r--modules-available/syslog/lang/en/module.json8
-rw-r--r--modules-available/syslog/lang/en/template-tags.json (renamed from modules-available/syslog/lang/en/templates/page-syslog.json)0
-rw-r--r--modules-available/syslog/lang/pt/module.json8
-rw-r--r--modules-available/syslog/lang/pt/template-tags.json10
-rw-r--r--modules-available/systemstatus/lang/de/template-tags.json33
-rw-r--r--modules-available/systemstatus/lang/de/templates/_page.json11
-rw-r--r--modules-available/systemstatus/lang/de/templates/addresses.json1
-rw-r--r--modules-available/systemstatus/lang/de/templates/diskstat.json12
-rw-r--r--modules-available/systemstatus/lang/de/templates/services.json1
-rw-r--r--modules-available/systemstatus/lang/de/templates/systeminfo.json15
-rw-r--r--modules-available/systemstatus/lang/en/template-tags.json33
-rw-r--r--modules-available/systemstatus/lang/en/templates/_page.json11
-rw-r--r--modules-available/systemstatus/lang/en/templates/addresses.json2
-rw-r--r--modules-available/systemstatus/lang/en/templates/diskstat.json12
-rw-r--r--modules-available/systemstatus/lang/en/templates/services.json2
-rw-r--r--modules-available/systemstatus/lang/en/templates/systeminfo.json15
-rw-r--r--modules-available/systemstatus/lang/pt/module.json23
-rw-r--r--modules-available/systemstatus/lang/pt/template-tags.json25
-rw-r--r--modules-available/translation/lang/de/template-tags.json20
-rw-r--r--modules-available/translation/lang/de/templates/_page.json9
-rw-r--r--modules-available/translation/lang/de/templates/edit.json12
-rw-r--r--modules-available/translation/lang/de/templates/template-list.json5
-rw-r--r--modules-available/translation/lang/en/module.json13
-rw-r--r--modules-available/translation/lang/en/template-tags.json22
-rw-r--r--modules-available/translation/lang/en/templates/_page.json9
-rw-r--r--modules-available/translation/lang/en/templates/edit.json12
-rw-r--r--modules-available/translation/lang/en/templates/template-list.json5
-rw-r--r--modules-available/translation/lang/pt/module.json13
-rw-r--r--modules-available/translation/lang/pt/template-tags.json15
-rw-r--r--modules-available/translation/page.inc.php651
-rw-r--r--modules-available/translation/templates/edit.html137
-rw-r--r--modules-available/translation/templates/module-list.html14
-rw-r--r--modules-available/translation/templates/template-list.html46
-rw-r--r--modules-available/usermanagement/lang/en/module.json16
-rw-r--r--modules-available/usermanagement/lang/en/template-tags.json (renamed from modules-available/usermanagement/lang/en/templates/user-management.json)0
-rw-r--r--modules-available/usermanagement/lang/pt/module.json16
-rw-r--r--modules-available/usermanagement/lang/pt/template-tags.json18
-rw-r--r--modules-available/vmstore/lang/de/template-tags.json (renamed from modules-available/vmstore/lang/de/templates/page-vmstore.json)3
-rw-r--r--modules-available/vmstore/lang/de/templates/mount.json5
-rw-r--r--modules-available/vmstore/lang/en/module.json18
-rw-r--r--modules-available/vmstore/lang/en/template-tags.json (renamed from modules-available/vmstore/lang/en/templates/page-vmstore.json)3
-rw-r--r--modules-available/vmstore/lang/en/templates/mount.json5
-rw-r--r--modules-available/vmstore/lang/pt/module.json18
-rw-r--r--modules-available/vmstore/lang/pt/template-tags.json20
-rw-r--r--modules-available/webinterface/lang/de/template-tags.json (renamed from modules-available/webinterface/lang/de/templates/https.json)7
-rw-r--r--modules-available/webinterface/lang/de/templates/httpd-restart.json4
-rw-r--r--modules-available/webinterface/lang/de/templates/passwords.json7
-rw-r--r--modules-available/webinterface/lang/en/template-tags.json (renamed from modules-available/webinterface/lang/en/templates/https.json)7
-rw-r--r--modules-available/webinterface/lang/en/templates/httpd-restart.json4
-rw-r--r--modules-available/webinterface/lang/en/templates/passwords.json7
-rw-r--r--style/default.css21
231 files changed, 1629 insertions, 1804 deletions
diff --git a/.gitignore b/.gitignore
index 5b6e242b..5fe38bee 100644
--- a/.gitignore
+++ b/.gitignore
@@ -6,3 +6,4 @@ nbproject/
/config.php
/client_config_additional.php
apis/tmpUploads/*
+/modules/
diff --git a/inc/dictionary.inc.php b/inc/dictionary.inc.php
index e8f51e24..c139c8bf 100644
--- a/inc/dictionary.inc.php
+++ b/inc/dictionary.inc.php
@@ -49,11 +49,6 @@ class Dictionary
define('LANG', $language);
}
- public static function getArrayTemplate($template, $module, $lang = false)
- {
- return self::getArray($module, 'templates/' . $template, $lang);
- }
-
public static function getArray($module, $path, $lang = false)
{
if ($lang === false)
@@ -84,12 +79,12 @@ class Dictionary
public static function getMessage($id)
{
- if (!preg_match('/^(\w+)\.(\w+)$/', id, $out)) {
+ if (!preg_match('/^(\w+)\.(.+)$/', $id, $out)) {
return 'Invalid Message ID format: ' . $id;
}
$string = self::translate($out[1], 'messages', $out[2]);
if ($string === false) {
- return $id;
+ return "($id) ({{0}}, {{1}}, {{2}}, {{3}})";
}
return $string;
}
diff --git a/inc/message.inc.php b/inc/message.inc.php
index 96fb94c5..d6a62f4e 100644
--- a/inc/message.inc.php
+++ b/inc/message.inc.php
@@ -37,6 +37,9 @@ class Message
*/
private static function add($type, $id, $params)
{
+ if (strstr($id, '.') === false) {
+ $id = Page::getModule()->getIdentifier() . '.' . $id;
+ }
self::$list[] = array(
'type' => $type,
'id' => $id,
diff --git a/inc/module.inc.php b/inc/module.inc.php
index 73959471..292c744a 100644
--- a/inc/module.inc.php
+++ b/inc/module.inc.php
@@ -11,11 +11,11 @@ class Module
*/
private static $modules = false;
- public static function get($name)
+ public static function get($name, $ignoreDepFail = false)
{
if (!isset(self::$modules[$name]))
return false;
- if (!self::resolveDeps(self::$modules[$name]))
+ if (!self::resolveDeps(self::$modules[$name]) && !$ignoreDepFail)
return false;
return self::$modules[$name];
}
@@ -38,20 +38,17 @@ class Module
$mod->depsChecked = true;
foreach ($mod->dependencies as $dep) {
if (!self::resolveDepsByName($dep)) {
- if ($mod->enabled) {
- error_log("Disabling module {$mod->name}: Dependency $dep failed.");
- }
- $mod->enabled = false;
+ error_log("Disabling module {$mod->name}: Dependency $dep failed.");
$mod->depsMissing = true;
return false;
}
}
}
- return $mod->enabled;
+ return !$mod->depsMissing;
}
/**
- * @return \Module[] List of enabled modules
+ * @return \Module[] List of valid, enabled modules
*/
public static function getEnabled()
{
@@ -63,6 +60,17 @@ class Module
return $ret;
}
+ /**
+ * @return \Module[] List of all modules, including with missing deps
+ */
+ public static function getAll()
+ {
+ foreach (self::$modules as $module) {
+ self::resolveDeps($module);
+ }
+ return self::$modules;
+ }
+
public static function init()
{
if (self::$modules !== false)
@@ -86,7 +94,6 @@ class Module
* Non-static
*/
- private $enabled = false;
private $category = false;
private $depsMissing = false;
private $depsChecked = false;
@@ -98,7 +105,6 @@ class Module
{
$file = 'modules/' . $name . '/config.json';
$json = @json_decode(@file_get_contents($file), true);
- $this->enabled = isset($json['enabled']) && ($json['enabled'] === true || $json['enabled'] === 'true');
if (isset($json['dependencies']) && is_array($json['dependencies'])) {
$this->dependencies = $json['dependencies'];
}
@@ -108,6 +114,11 @@ class Module
$this->name = $name;
}
+ public function hasMissingDependencies()
+ {
+ return $this->depsMissing;
+ }
+
public function newPage()
{
$modulePath = 'modules/' . $this->name . '/page.inc.php';
@@ -121,7 +132,7 @@ class Module
public function activate()
{
- if ($this->activated || !$this->enabled)
+ if ($this->activated || $this->depsMissing)
return;
$this->activated = true;
spl_autoload_register(function($class) {
diff --git a/inc/render.inc.php b/inc/render.inc.php
index b8abaf71..6a2872f7 100644
--- a/inc/render.inc.php
+++ b/inc/render.inc.php
@@ -185,16 +185,13 @@ class Render
}
// Now find all language tags in this array
if (preg_match_all('/{{(lang_.+?)}}/', $html, $out) > 0) {
- $dictionary = Dictionary::getArrayTemplate($template, $module);
+ $dictionary = Dictionary::getArray($module, 'template-tags');
$fallback = false;
foreach ($out[1] as $tag) {
// Add untranslated strings to the dictionary, so their tag is seen in the rendered page
if ($fallback === false && empty($dictionary[$tag])) {
$fallback = true; // Fallback to general dictionary of module
- $dictionary = $dictionary + Dictionary::getArray($module, 'module');
- if ($module !== 'main') {
- $dictionary = $dictionary + Dictionary::getArray('main', 'module');
- }
+ $dictionary = $dictionary + Dictionary::getArray('main', 'global-template-tags');
}
if (empty($dictionary[$tag])) {
$dictionary[$tag] = '{{' . $tag . '}}';
diff --git a/modules-available/adduser/lang/de/templates/page-adduser.json b/modules-available/adduser/lang/de/template-tags.json
index 0f446025..0f446025 100644
--- a/modules-available/adduser/lang/de/templates/page-adduser.json
+++ b/modules-available/adduser/lang/de/template-tags.json
diff --git a/modules-available/adduser/lang/en/module.json b/modules-available/adduser/lang/en/module.json
deleted file mode 100644
index 170c12f6..00000000
--- a/modules-available/adduser/lang/en/module.json
+++ /dev/null
@@ -1,8 +0,0 @@
-{
- "lang_confirmation": "Confirm Password",
- "lang_createUser": "Create User",
- "lang_fullName": "Fullname",
- "lang_password": "Password",
- "lang_telephone": "Telephone",
- "lang_username": "Username"
-} \ No newline at end of file
diff --git a/modules-available/adduser/lang/en/templates/page-adduser.json b/modules-available/adduser/lang/en/template-tags.json
index 42bae6dc..42bae6dc 100644
--- a/modules-available/adduser/lang/en/templates/page-adduser.json
+++ b/modules-available/adduser/lang/en/template-tags.json
diff --git a/modules-available/adduser/lang/pt/module.json b/modules-available/adduser/lang/pt/template-tags.json
index 524f3dd5..524f3dd5 100644
--- a/modules-available/adduser/lang/pt/module.json
+++ b/modules-available/adduser/lang/pt/template-tags.json
diff --git a/modules-available/backup/lang/de/module.json b/modules-available/backup/lang/de/module.json
index a0dbdf27..a08ad617 100644
--- a/modules-available/backup/lang/de/module.json
+++ b/modules-available/backup/lang/de/module.json
@@ -1,4 +1,4 @@
{
- "module_name": "Sichern/Wiederherstellen",
+ "module_name": "Sichern\/Wiederherstellen",
"page_title": "Sichern und wiederherstellen"
-}
+} \ No newline at end of file
diff --git a/modules-available/backup/lang/de/templates/_page.json b/modules-available/backup/lang/de/template-tags.json
index 5e3efea2..770e34d2 100644
--- a/modules-available/backup/lang/de/templates/_page.json
+++ b/modules-available/backup/lang/de/template-tags.json
@@ -5,10 +5,15 @@
"lang_browseForFile": "Durchsuchen",
"lang_download": "Herunterladen",
"lang_dozmodExplanation": "Die Datenbank des Dozentenmoduls wiederherstellen. Dazu geh\u00f6ren die Metadaten der Virtuellen Maschinen, die Veranstaltungen, etc. Bitte beachten Sie, dass hierzu auf dem konfigurierten VM-Store die passenden VM-Abbilder vorliegen m\u00fcssen, da diese extern gespeichert werden. Wenn sich der Servername oder die -adresse ge\u00e4ndert haben stellen Sie bitte sicher, dass die relativen Pfade innerhalb des Netzlaufwerks gleich geblieben sind. Ansonsten werden die wiederhergestellten VMs nicht verwendbar sein.",
+ "lang_reboot": "Systemneustart",
"lang_restore": "Hochladen",
+ "lang_restoreConfig": "Konfiguration wiederherstellen",
"lang_restoreDescription": "Hier k\u00f6nnen Sie ein Backup der Konfiguration wieder einspielen. Bitte beachten Sie, dass der Server dabei neu gestartet wird, daher sollten Sie dies m\u00f6glichst durchf\u00fchren, wenn das System nicht genutzt wird, und keine Dozenten Veranstaltungen oder Virtuelle Labore erstellen oder hoch-\/herunterladen. Bitte beachten Sie, dass dabei auch das urspr\u00fcngliche Passwort der Weboberfl\u00e4che wiederhergestellt wird.",
"lang_restoreDozmodConfig": "Dozentenmodul-Konfiguration wiederherstellen",
+ "lang_restoreFailed": "Wiederherstellung der Konfiguration fehlgeschlagen.",
"lang_restoreSystemConfig": "Systemkonfiguration wiederherstellen",
"lang_selectFile": "Bitte w\u00e4hlen Sie ein Backup-Archiv",
- "lang_systemExplanation": "Die Grundkonfiguration des Satelliten wiederherstellen: Authentifizierungmethode, Passw\u00f6rter, Proxies, VM-Storage, etc.\r\nACHTUNG: Wenn Sie ein Backup von vor WS15\/16 einspielen (Backup-Format vor Version 10), wird die Systemkonfiguration in jedem Fall wiederhergestellt, auch wenn Sie diesen Haken nicht setzen."
+ "lang_stopping": "Stoppe",
+ "lang_systemExplanation": "Die Grundkonfiguration des Satelliten wiederherstellen: Authentifizierungmethode, Passw\u00f6rter, Proxies, VM-Storage, etc.\r\nACHTUNG: Wenn Sie ein Backup von vor WS15\/16 einspielen (Backup-Format vor Version 10), wird die Systemkonfiguration in jedem Fall wiederhergestellt, auch wenn Sie diesen Haken nicht setzen.",
+ "lang_waitReboot": "Warte auf Reboot."
} \ No newline at end of file
diff --git a/modules-available/backup/lang/de/templates/restore.json b/modules-available/backup/lang/de/templates/restore.json
deleted file mode 100644
index 6b3a7cdd..00000000
--- a/modules-available/backup/lang/de/templates/restore.json
+++ /dev/null
@@ -1,8 +0,0 @@
-{
- "lang_backup": "Sichern...",
- "lang_reboot": "Systemneustart",
- "lang_restoreConfig": "Konfiguration wiederherstellen",
- "lang_restoreFailed": "Wiederherstellung der Konfiguration fehlgeschlagen.",
- "lang_stopping": "Stoppe",
- "lang_waitReboot": "Warte auf Reboot."
-} \ No newline at end of file
diff --git a/modules-available/backup/lang/en/module.json b/modules-available/backup/lang/en/module.json
index c9379ffd..cd6c87d0 100644
--- a/modules-available/backup/lang/en/module.json
+++ b/modules-available/backup/lang/en/module.json
@@ -1,14 +1,3 @@
{
- "lang_backup": "Backup",
- "lang_backupDescription": "Here you can backup the complete configuration of this satellite server.",
- "lang_backupRestore": "Backup and restore",
- "lang_download": "Download",
- "lang_file": "File",
- "lang_reboot": "System reboot",
- "lang_restore": "Upload",
- "lang_restoreConfig": "Restore config",
- "lang_restoreDescription": "Here you can restore a configuration backup. Please note that this will reboot the server, so it is advised to do this while nobody is using the system. Please note that this will also restore the password for the web interface that was active when the configuration backup was created.",
- "lang_restoreFailed": "Restoring configuration failed.",
- "lang_stopping": "Stopping",
"module_name": "Backup"
} \ No newline at end of file
diff --git a/modules-available/backup/lang/en/templates/_page.json b/modules-available/backup/lang/en/template-tags.json
index 799c6168..713f3d5e 100644
--- a/modules-available/backup/lang/en/templates/_page.json
+++ b/modules-available/backup/lang/en/template-tags.json
@@ -5,10 +5,16 @@
"lang_browseForFile": "Browse",
"lang_download": "Download",
"lang_dozmodExplanation": "This restores all the virtual machine and lecture meta data created using the \"Dozentenmodul\". Please make sure the VM-storage configured still contains all the VM-Images associated with the virtual machines. If the location of the storage changed, make sure the relative pathes on the share are still the same, otherwise the virtual machines won't be usable.",
+ "lang_file": "File",
+ "lang_reboot": "System reboot",
"lang_restore": "Upload",
+ "lang_restoreConfig": "Restore config",
"lang_restoreDescription": "Here you can restore a configuration backup. Please note that this will reboot the server, so it is advised to do this while nobody is using the system. Please note that this will also restore the password for the web interface that was active when the configuration backup was created.",
"lang_restoreDozmodConfig": "Restore Dozentenmodul config",
+ "lang_restoreFailed": "Restoring configuration failed.",
"lang_restoreSystemConfig": "Restore system config",
"lang_selectFile": "Please select a backup archive",
- "lang_systemExplanation": "Restore basic configuration like authentication method, passwords, vm storage location, proxy config, etc. WARNING: If you restore a configuration backup that was made before WS15\/16 (backup format version <10), the system configuration will be restored regardless of this check mark."
+ "lang_stopping": "Stopping",
+ "lang_systemExplanation": "Restore basic configuration like authentication method, passwords, vm storage location, proxy config, etc. WARNING: If you restore a configuration backup that was made before WS15\/16 (backup format version <10), the system configuration will be restored regardless of this check mark.",
+ "lang_waitReboot": "Waiting for reboot."
} \ No newline at end of file
diff --git a/modules-available/backup/lang/en/templates/restore.json b/modules-available/backup/lang/en/templates/restore.json
deleted file mode 100644
index 5a5f6f64..00000000
--- a/modules-available/backup/lang/en/templates/restore.json
+++ /dev/null
@@ -1,8 +0,0 @@
-{
- "lang_backup": "Backup...",
- "lang_reboot": "System reboot",
- "lang_restoreConfig": "Restore config",
- "lang_restoreFailed": "Restoring configuration failed.",
- "lang_stopping": "Stopping",
- "lang_waitReboot": "Waiting for reboot."
-} \ No newline at end of file
diff --git a/modules-available/backup/lang/pt/module.json b/modules-available/backup/lang/pt/module.json
index 5077cbfa..cd6c87d0 100644
--- a/modules-available/backup/lang/pt/module.json
+++ b/modules-available/backup/lang/pt/module.json
@@ -1,14 +1,3 @@
{
- "lang_backup": "Backup",
- "lang_backupDescription": "Aqui voc\u00ea pode fazer um backup completo da configura\u00e7\u00e3o deste server.",
- "lang_backupRestore": "Backup e Recupera\u00e7\u00e3o",
- "lang_download": "Baixar",
- "lang_file": "Arquivo",
- "lang_reboot": "Reinicializar Sistema",
- "lang_restore": "Carregar",
- "lang_restoreConfig": "Recuperar Configura\u00e7\u00e3o",
- "lang_restoreDescription": "Aqui voc\u00ea pode recuperar um backup de configura\u00e7\u00e3o. Por favor note que isso ir\u00e1 reinicializar o servidor, portanto \u00e9 recomendado faz\u00ea-lo quando ningu\u00e9m estiver utilizando o sistema. Por favor note que isso tamb\u00e9m ir\u00e1 recuperar a senha da interface web que estava ativa quando a configura\u00e7\u00e3o de backup foi criada.",
- "lang_restoreFailed": "Recupera\u00e7\u00e3o da configura\u00e7\u00e3o falhou",
- "lang_stopping": "Parando",
"module_name": "Backup"
} \ No newline at end of file
diff --git a/modules-available/backup/lang/pt/template-tags.json b/modules-available/backup/lang/pt/template-tags.json
new file mode 100644
index 00000000..79f455a5
--- /dev/null
+++ b/modules-available/backup/lang/pt/template-tags.json
@@ -0,0 +1,13 @@
+{
+ "lang_backup": "Backup",
+ "lang_backupDescription": "Aqui voc\u00ea pode fazer um backup completo da configura\u00e7\u00e3o deste server.",
+ "lang_backupRestore": "Backup e Recupera\u00e7\u00e3o",
+ "lang_download": "Baixar",
+ "lang_file": "Arquivo",
+ "lang_reboot": "Reinicializar Sistema",
+ "lang_restore": "Carregar",
+ "lang_restoreConfig": "Recuperar Configura\u00e7\u00e3o",
+ "lang_restoreDescription": "Aqui voc\u00ea pode recuperar um backup de configura\u00e7\u00e3o. Por favor note que isso ir\u00e1 reinicializar o servidor, portanto \u00e9 recomendado faz\u00ea-lo quando ningu\u00e9m estiver utilizando o sistema. Por favor note que isso tamb\u00e9m ir\u00e1 recuperar a senha da interface web que estava ativa quando a configura\u00e7\u00e3o de backup foi criada.",
+ "lang_restoreFailed": "Recupera\u00e7\u00e3o da configura\u00e7\u00e3o falhou",
+ "lang_stopping": "Parando"
+} \ No newline at end of file
diff --git a/modules-available/baseconfig/hooks/translation.inc.php b/modules-available/baseconfig/hooks/translation.inc.php
new file mode 100644
index 00000000..84a6d33a
--- /dev/null
+++ b/modules-available/baseconfig/hooks/translation.inc.php
@@ -0,0 +1,39 @@
+<?php
+
+$HANDLER = array();
+
+/**
+ * List of valid subsections
+ */
+$HANDLER['subsections'] = array(
+ 'categories', 'settings'
+);
+
+/*
+ * Handlers for the subsections that will return an array of expected tags.
+ * This is optional, if you don't want to define expected tags, don't create a function.
+ */
+
+/**
+ * Configuration categories
+ */
+$HANDLER['grep']['categories'] = function($module) {
+ $want = array();
+ $res = Database::simpleQuery("SELECT catid FROM cat_setting ORDER BY catid ASC");
+ while ($row = $res->fetch(PDO::FETCH_ASSOC)) {
+ $want[] = 'cat_' . $row['catid'];
+ }
+ return $want;
+};
+
+/**
+ * Configuration variables
+ */
+$HANDLER['grep']['settings'] = function($module) {
+ $want = array();
+ $res = Database::simpleQuery("SELECT setting FROM setting ORDER BY setting ASC");
+ while ($row = $res->fetch(PDO::FETCH_ASSOC)) {
+ $want[] = $row['setting'];
+ }
+ return $want;
+};
diff --git a/modules-available/baseconfig/lang/de/templates/_page.json b/modules-available/baseconfig/lang/de/template-tags.json
index 0f4819b4..0f4819b4 100644
--- a/modules-available/baseconfig/lang/de/templates/_page.json
+++ b/modules-available/baseconfig/lang/de/template-tags.json
diff --git a/modules-available/baseconfig/lang/en/module.json b/modules-available/baseconfig/lang/en/module.json
index 9345c27c..38bbca7b 100644
--- a/modules-available/baseconfig/lang/en/module.json
+++ b/modules-available/baseconfig/lang/en/module.json
@@ -1,27 +1,3 @@
{
- "lang_basicConfiguration": "Basic Configuration",
- "lang_catPartition": "Partition Managment",
- "lang_catUser": "User Managment",
- "lang_close": "Close",
- "lang_confirm": "Would you like to save the settings on [ \/srv\/openslx\/www\/boot\/config ] ?",
- "lang_create": "Create",
- "lang_delete": "Delete",
- "lang_help": "Help",
- "lang_helpId": "Partition Id",
- "lang_helpMountPoint": "Must be a directory: \/example\/directory\/",
- "lang_helpOptions": "Currently, only option 'bootable' is available",
- "lang_helpSize": "Must be in Gigabytes e.g. 15G",
- "lang_newPartition": "New Partition",
- "lang_newUser": "New User",
- "lang_partitionId": "Id",
- "lang_partitionMountPoint": "Mount Point",
- "lang_partitionOptions": "Options",
- "lang_partitionSize": "Size",
- "lang_reset": "Reset",
- "lang_resetConfirm": "Do you really wish to reset the variable to their default values?",
- "lang_resetDefault": "Reset Default",
- "lang_save": "Save",
- "lang_userName": "Username",
- "lang_userPasswd": "Password",
"module_name": "Variables"
} \ No newline at end of file
diff --git a/modules-available/baseconfig/lang/en/template-tags.json b/modules-available/baseconfig/lang/en/template-tags.json
new file mode 100644
index 00000000..3609f6fa
--- /dev/null
+++ b/modules-available/baseconfig/lang/en/template-tags.json
@@ -0,0 +1,27 @@
+{
+ "lang_basicConfiguration": "Basic Configuration",
+ "lang_catPartition": "Partition Managment",
+ "lang_catUser": "User Managment",
+ "lang_clientRelatedConfig": "The options on this page are related to the bwLehrpool client machines.",
+ "lang_close": "Close",
+ "lang_confirm": "Would you like to save the settings on [ \/srv\/openslx\/www\/boot\/config ] ?",
+ "lang_create": "Create",
+ "lang_delete": "Delete",
+ "lang_help": "Help",
+ "lang_helpId": "Partition Id",
+ "lang_helpMountPoint": "Must be a directory: \/example\/directory\/",
+ "lang_helpOptions": "Currently, only option 'bootable' is available",
+ "lang_helpSize": "Must be in Gigabytes e.g. 15G",
+ "lang_newPartition": "New Partition",
+ "lang_newUser": "New User",
+ "lang_partitionId": "Id",
+ "lang_partitionMountPoint": "Mount Point",
+ "lang_partitionOptions": "Options",
+ "lang_partitionSize": "Size",
+ "lang_reset": "Reset",
+ "lang_resetConfirm": "Do you really wish to reset the variable to their default values?",
+ "lang_resetDefault": "Reset Default",
+ "lang_save": "Save",
+ "lang_userName": "Username",
+ "lang_userPasswd": "Password"
+} \ No newline at end of file
diff --git a/modules-available/baseconfig/lang/en/templates/_page.json b/modules-available/baseconfig/lang/en/templates/_page.json
deleted file mode 100644
index 6429a835..00000000
--- a/modules-available/baseconfig/lang/en/templates/_page.json
+++ /dev/null
@@ -1,7 +0,0 @@
-{
- "lang_basicConfiguration": "Basic Configuration",
- "lang_clientRelatedConfig": "The options on this page are related to the bwLehrpool client machines.",
- "lang_close": "Close",
- "lang_reset": "Reset",
- "lang_save": "Save"
-} \ No newline at end of file
diff --git a/modules-available/baseconfig/lang/pt/module.json b/modules-available/baseconfig/lang/pt/module.json
index 0ac0a075..dca9eb8b 100644
--- a/modules-available/baseconfig/lang/pt/module.json
+++ b/modules-available/baseconfig/lang/pt/module.json
@@ -1,27 +1,3 @@
{
- "lang_basicConfiguration": "Configura\u00e7\u00e3o B\u00e1sica",
- "lang_catPartition": "Gerenciamento de Parti\u00e7\u00f5es",
- "lang_catUser": "Gerenciamente de Usu\u00e1rios",
- "lang_close": "Fechar",
- "lang_confirm": "Voc\u00ea deseja salvar configura\u00e7\u00f5es em [ \/srv\/openslx\/www\/boot\/default\/config ] ?",
- "lang_create": "Criar",
- "lang_delete": "Deletar",
- "lang_help": "Ajuda",
- "lang_helpId": "Id da parti\u00e7\u00e3o",
- "lang_helpMountPoint": "Precisa ser um diret\u00f3rio: \/exemplo\/diret\u00f3rio\/",
- "lang_helpOptions": "Atualmente, apenas a op\u00e7\u00e3o 'bootable' est\u00e1 dispon\u00edvel",
- "lang_helpSize": "Precisa estar em Gigabytes, por exemplo 15G",
- "lang_newPartition": "Nova Parti\u00e7\u00e3o",
- "lang_newUser": "Novo Usu\u00e1rio",
- "lang_partitionId": "Id",
- "lang_partitionMountPoint": "Mount Point",
- "lang_partitionOptions": "Op\u00e7\u00f5es",
- "lang_partitionSize": "Tamanho",
- "lang_reset": "Limpar",
- "lang_resetConfirm": "Voc\u00ea realmente deseja restaurar as vari\u00e1veis para seus valores padr\u00f5es?",
- "lang_resetDefault": "Restaurar Padr\u00e3o",
- "lang_save": "Salvar",
- "lang_userName": "Nome",
- "lang_userPasswd": "Senha",
"module_name": "Vari\u00e1veis"
} \ No newline at end of file
diff --git a/modules-available/baseconfig/lang/pt/template-tags.json b/modules-available/baseconfig/lang/pt/template-tags.json
new file mode 100644
index 00000000..1ab41b16
--- /dev/null
+++ b/modules-available/baseconfig/lang/pt/template-tags.json
@@ -0,0 +1,26 @@
+{
+ "lang_basicConfiguration": "Configura\u00e7\u00e3o B\u00e1sica",
+ "lang_catPartition": "Gerenciamento de Parti\u00e7\u00f5es",
+ "lang_catUser": "Gerenciamente de Usu\u00e1rios",
+ "lang_close": "Fechar",
+ "lang_confirm": "Voc\u00ea deseja salvar configura\u00e7\u00f5es em [ \/srv\/openslx\/www\/boot\/default\/config ] ?",
+ "lang_create": "Criar",
+ "lang_delete": "Deletar",
+ "lang_help": "Ajuda",
+ "lang_helpId": "Id da parti\u00e7\u00e3o",
+ "lang_helpMountPoint": "Precisa ser um diret\u00f3rio: \/exemplo\/diret\u00f3rio\/",
+ "lang_helpOptions": "Atualmente, apenas a op\u00e7\u00e3o 'bootable' est\u00e1 dispon\u00edvel",
+ "lang_helpSize": "Precisa estar em Gigabytes, por exemplo 15G",
+ "lang_newPartition": "Nova Parti\u00e7\u00e3o",
+ "lang_newUser": "Novo Usu\u00e1rio",
+ "lang_partitionId": "Id",
+ "lang_partitionMountPoint": "Mount Point",
+ "lang_partitionOptions": "Op\u00e7\u00f5es",
+ "lang_partitionSize": "Tamanho",
+ "lang_reset": "Limpar",
+ "lang_resetConfirm": "Voc\u00ea realmente deseja restaurar as vari\u00e1veis para seus valores padr\u00f5es?",
+ "lang_resetDefault": "Restaurar Padr\u00e3o",
+ "lang_save": "Salvar",
+ "lang_userName": "Nome",
+ "lang_userPasswd": "Senha"
+} \ No newline at end of file
diff --git a/modules-available/citymanagement/lang/en/module.json b/modules-available/citymanagement/lang/en/module.json
index ba6c5c44..a3914cea 100644
--- a/modules-available/citymanagement/lang/en/module.json
+++ b/modules-available/citymanagement/lang/en/module.json
@@ -1,14 +1,3 @@
{
- "lang_cancelConfirm": "Do you really want to remove this city?",
- "lang_cityInfo": "Here you can create new cities for the website, besides editing or removing the existing ones",
- "lang_cityPage": "Manage cities",
- "lang_cityname": "City name",
- "lang_close": "Close",
- "lang_create": "Create",
- "lang_edit": "Edit",
- "lang_editcity": "Edit City",
- "lang_operations": "Operations",
- "lang_remove": "Remove",
- "lang_save": "Save",
"module_name": "Management"
} \ No newline at end of file
diff --git a/modules-available/citymanagement/lang/en/template-tags.json b/modules-available/citymanagement/lang/en/template-tags.json
new file mode 100644
index 00000000..02c30b02
--- /dev/null
+++ b/modules-available/citymanagement/lang/en/template-tags.json
@@ -0,0 +1,13 @@
+{
+ "lang_cancelConfirm": "Do you really want to remove this city?",
+ "lang_cityInfo": "Here you can create new cities for the website, besides editing or removing the existing ones",
+ "lang_cityPage": "Manage cities",
+ "lang_cityname": "City name",
+ "lang_close": "Close",
+ "lang_create": "Create",
+ "lang_edit": "Edit",
+ "lang_editcity": "Edit City",
+ "lang_operations": "Operations",
+ "lang_remove": "Remove",
+ "lang_save": "Save"
+} \ No newline at end of file
diff --git a/modules-available/citymanagement/lang/en/templates/citymanagement.json b/modules-available/citymanagement/lang/en/templates/citymanagement.json
deleted file mode 100644
index 27bb60c0..00000000
--- a/modules-available/citymanagement/lang/en/templates/citymanagement.json
+++ /dev/null
@@ -1,13 +0,0 @@
-{
- "lang_cancelConfirm": "Do you really want to remove this city?",
- "lang_cityInfo":"Here you can create new cities for the website, besides editing or removing the existing ones",
- "lang_cityPage":"Manage cities",
- "lang_cityname":"City name",
- "lang_close": "Close",
- "lang_create": "Create",
- "lang_edit":"Edit",
- "lang_editcity":"Edit City",
- "lang_operations": "Operations",
- "lang_remove": "Remove",
- "lang_save": "Save"
-}
diff --git a/modules-available/citymanagement/lang/pt/module.json b/modules-available/citymanagement/lang/pt/module.json
index c514f437..a65f27b4 100644
--- a/modules-available/citymanagement/lang/pt/module.json
+++ b/modules-available/citymanagement/lang/pt/module.json
@@ -1,14 +1,3 @@
{
- "lang_cancelConfirm": "Deseja realmente remover a cidade?",
- "lang_cityInfo": "Nesta se\u00e7\u00e3o voc\u00ea poder\u00e1 criar cidades para o site, al\u00e9m de editar ou remover cidades existentes",
- "lang_cityPage": "Gerenciar cidades",
- "lang_cityname": "Nome da cidade",
- "lang_close": "Fechar",
- "lang_create": "Criar",
- "lang_edit": "Editar",
- "lang_editcity": "Editar Cidade",
- "lang_operations": "Opera\u00e7\u00f5es",
- "lang_remove": "Remover",
- "lang_save": "Salvar",
"module_name": "Gerenciamento"
} \ No newline at end of file
diff --git a/modules-available/citymanagement/lang/pt/template-tags.json b/modules-available/citymanagement/lang/pt/template-tags.json
new file mode 100644
index 00000000..acfe4e2e
--- /dev/null
+++ b/modules-available/citymanagement/lang/pt/template-tags.json
@@ -0,0 +1,13 @@
+{
+ "lang_cancelConfirm": "Deseja realmente remover a cidade?",
+ "lang_cityInfo": "Nesta se\u00e7\u00e3o voc\u00ea poder\u00e1 criar cidades para o site, al\u00e9m de editar ou remover cidades existentes",
+ "lang_cityPage": "Gerenciar cidades",
+ "lang_cityname": "Nome da cidade",
+ "lang_close": "Fechar",
+ "lang_create": "Criar",
+ "lang_edit": "Editar",
+ "lang_editcity": "Editar Cidade",
+ "lang_operations": "Opera\u00e7\u00f5es",
+ "lang_remove": "Remover",
+ "lang_save": "Salvar"
+} \ No newline at end of file
diff --git a/modules-available/dozmod/lang/de/template-tags.json b/modules-available/dozmod/lang/de/template-tags.json
new file mode 100644
index 00000000..7f4fad6f
--- /dev/null
+++ b/modules-available/dozmod/lang/de/template-tags.json
@@ -0,0 +1,43 @@
+{
+ "lang_asteriskRequired": "Felder mit (*) sind erforderlich",
+ "lang_canLogin": "Nutzer dieser Einrichtung k\u00f6nnen sich am Satelliten anmelden",
+ "lang_delButton": "Gew\u00e4hlte Images endg\u00fcltig l\u00f6schen",
+ "lang_delete": "L\u00f6schen",
+ "lang_description": "Diese Liste zeigt Images, die entweder abgelaufen sind, oder deren Datei besch\u00e4digt, verschoben oder gel\u00f6scht wurde. Diese Images sind zur Zeit im Lehrpool nicht verf\u00fcgbar, ihre endg\u00fcltige L\u00f6schung muss aber manuell best\u00e4tigt werden, um gr\u00f6\u00dfere Katastrophen durch Softwarefehler, verstellte Systemuhren etc. zu vermeiden.",
+ "lang_email": "EMail",
+ "lang_emailNotifications": "EMail-Benachrichtigungen aktiviert",
+ "lang_hasNewer": "Neuere Version existiert",
+ "lang_heading": "Zu l\u00f6schende Image-Versionen",
+ "lang_host": "Host",
+ "lang_image": "VM",
+ "lang_lastLogin": "Letzte Anmeldung",
+ "lang_mailConfig": "SMTP-Konfiguration zum Versenden von Mails",
+ "lang_mailConfigHeadline": "EMail-Konfiguration",
+ "lang_mailDescription": "F\u00fcllen Sie die folgenden Felder aus, wenn sie m\u00f6chten, dass Dozenten Benachrichtigungen per Mail bekommen, falls eine von ihnen genutzte oder erstellte VM oder Veranstaltung abl\u00e4uft. Um diese Funktion zu deaktivieren, lassen Sie eines der mit (*) gekennzeichneten Felder leer. Wenn das hier angegebene E-Mail-Konto nur zum Versenden von Mails genutzt wird, sollten Sie einen Auto-Responder einrichten f\u00fcr den Fall, dass ein Dozent auf eine der automatisch generierten Mails antwortet (bzw. eine explizit angegebene Reply-To Adresse ignoriert).",
+ "lang_organization": "Einrichtung",
+ "lang_organizationList": "Liste der Einrichtungen",
+ "lang_organizationListHeader": "Nutzungsrechte f\u00fcr den Satelliten festlegen",
+ "lang_owner": "Besitzer",
+ "lang_password": "Passwort",
+ "lang_port": "Port",
+ "lang_replyTo": "Reply-To Adresse (z.B. Helpdesk)",
+ "lang_save": "Konfiguration speichern",
+ "lang_senderAddress": "Absenderadresse",
+ "lang_senderName": "Absender Anzeigename",
+ "lang_size": "Gr\u00f6\u00dfe",
+ "lang_ssl": "SSL-Modus",
+ "lang_sslExplicit": "Explizites SSL (\"STARTTLS\")",
+ "lang_sslImplicit": "Implizites SSL",
+ "lang_sslNone": "Kein SSL",
+ "lang_subHeading": "Images, die abgelaufen oder besch\u00e4digt sind",
+ "lang_superUser": "Ist SuperUser (darf alle Veranstaltungen und VMs bearbeiten\/l\u00f6schen)",
+ "lang_test": "Test-Mail senden",
+ "lang_testConfiguration": "Um die Konfiguration zu testen, geben Sie hier eine Empf\u00e4ngeradresse ein",
+ "lang_testRecipient": "Empf\u00e4nger",
+ "lang_user": "Benutzername",
+ "lang_userList": "Benutzerliste",
+ "lang_userListDescription": "Hier k\u00f6nnen Sie individuelle Nutzer zu \"Super-Usern\" machen. Diese haben im Dozentenmodul auf alle Veranstaltungen und VMs Vollzugriff, unabh\u00e4ngig von den gesetzten Berechtigungen. Au\u00dferdem k\u00f6nnen Sie hier Benutzer vom Zugriff mittels des Dozentenmoduls ausschlie\u00dfen.",
+ "lang_userListHeader": "Dem Satelliten bekannte Benutzer",
+ "lang_username": "Benutzername (SMTP-Auth)",
+ "lang_version": "Version vom"
+} \ No newline at end of file
diff --git a/modules-available/dozmod/lang/de/templates/images-delete.json b/modules-available/dozmod/lang/de/templates/images-delete.json
deleted file mode 100644
index 8c54e4d1..00000000
--- a/modules-available/dozmod/lang/de/templates/images-delete.json
+++ /dev/null
@@ -1,12 +0,0 @@
-{
- "lang_delButton": "Gew\u00e4hlte Images endg\u00fcltig l\u00f6schen",
- "lang_delete": "L\u00f6schen",
- "lang_description": "Diese Liste zeigt Images, die entweder abgelaufen sind, oder deren Datei besch\u00e4digt, verschoben oder gel\u00f6scht wurde. Diese Images sind zur Zeit im Lehrpool nicht verf\u00fcgbar, ihre endg\u00fcltige L\u00f6schung muss aber manuell best\u00e4tigt werden, um gr\u00f6\u00dfere Katastrophen durch Softwarefehler, verstellte Systemuhren etc. zu vermeiden.",
- "lang_hasNewer": "Neuere Version existiert",
- "lang_heading": "Zu l\u00f6schende Image-Versionen",
- "lang_image": "VM",
- "lang_owner": "Besitzer",
- "lang_size": "Gr\u00f6\u00dfe",
- "lang_subHeading": "Images, die abgelaufen oder besch\u00e4digt sind",
- "lang_version": "Version vom"
-} \ No newline at end of file
diff --git a/modules-available/dozmod/lang/de/templates/mailconfig.json b/modules-available/dozmod/lang/de/templates/mailconfig.json
deleted file mode 100644
index 4509c3c7..00000000
--- a/modules-available/dozmod/lang/de/templates/mailconfig.json
+++ /dev/null
@@ -1,21 +0,0 @@
-{
- "lang_asteriskRequired": "Felder mit (*) sind erforderlich",
- "lang_host": "Host",
- "lang_mailConfig": "SMTP-Konfiguration zum Versenden von Mails",
- "lang_mailConfigHeadline": "EMail-Konfiguration",
- "lang_mailDescription": "F\u00fcllen Sie die folgenden Felder aus, wenn sie m\u00f6chten, dass Dozenten Benachrichtigungen per Mail bekommen, falls eine von ihnen genutzte oder erstellte VM oder Veranstaltung abl\u00e4uft. Um diese Funktion zu deaktivieren, lassen Sie eines der mit (*) gekennzeichneten Felder leer. Wenn das hier angegebene E-Mail-Konto nur zum Versenden von Mails genutzt wird, sollten Sie einen Auto-Responder einrichten f\u00fcr den Fall, dass ein Dozent auf eine der automatisch generierten Mails antwortet (bzw. eine explizit angegebene Reply-To Adresse ignoriert).",
- "lang_password": "Passwort",
- "lang_port": "Port",
- "lang_replyTo": "Reply-To Adresse (z.B. Helpdesk)",
- "lang_save": "Konfiguration speichern",
- "lang_senderAddress": "Absenderadresse",
- "lang_senderName": "Absender Anzeigename",
- "lang_ssl": "SSL-Modus",
- "lang_sslExplicit": "Explizites SSL (\"STARTTLS\")",
- "lang_sslImplicit": "Implizites SSL",
- "lang_sslNone": "Kein SSL",
- "lang_test": "Test-Mail senden",
- "lang_testConfiguration": "Um die Konfiguration zu testen, geben Sie hier eine Empf\u00e4ngeradresse ein",
- "lang_testRecipient": "Empf\u00e4nger",
- "lang_username": "Benutzername (SMTP-Auth)"
-} \ No newline at end of file
diff --git a/modules-available/dozmod/lang/de/templates/orglist.json b/modules-available/dozmod/lang/de/templates/orglist.json
deleted file mode 100644
index 938429f0..00000000
--- a/modules-available/dozmod/lang/de/templates/orglist.json
+++ /dev/null
@@ -1,6 +0,0 @@
-{
- "lang_canLogin": "Nutzer dieser Einrichtung k\u00f6nnen sich am Satelliten anmelden",
- "lang_organization": "Einrichtung",
- "lang_organizationList": "Liste der Einrichtungen",
- "lang_organizationListHeader": "Nutzungsrechte f\u00fcr den Satelliten festlegen"
-} \ No newline at end of file
diff --git a/modules-available/dozmod/lang/de/templates/userlist.json b/modules-available/dozmod/lang/de/templates/userlist.json
deleted file mode 100644
index e9e33cc2..00000000
--- a/modules-available/dozmod/lang/de/templates/userlist.json
+++ /dev/null
@@ -1,12 +0,0 @@
-{
- "lang_canLogin": "Dieser Benutzer kann sich am Satelilten anmelden",
- "lang_email": "EMail",
- "lang_emailNotifications": "EMail-Benachrichtigungen aktiviert",
- "lang_lastLogin": "Letzte Anmeldung",
- "lang_organization": "Organisation",
- "lang_superUser": "Ist SuperUser (darf alle Veranstaltungen und VMs bearbeiten\/l\u00f6schen)",
- "lang_user": "Benutzername",
- "lang_userList": "Benutzerliste",
- "lang_userListDescription": "Hier k\u00f6nnen Sie individuelle Nutzer zu \"Super-Usern\" machen. Diese haben im Dozentenmodul auf alle Veranstaltungen und VMs Vollzugriff, unabh\u00e4ngig von den gesetzten Berechtigungen. Au\u00dferdem k\u00f6nnen Sie hier Benutzer vom Zugriff mittels des Dozentenmoduls ausschlie\u00dfen.",
- "lang_userListHeader": "Dem Satelliten bekannte Benutzer"
-} \ No newline at end of file
diff --git a/modules-available/dozmod/lang/en/template-tags.json b/modules-available/dozmod/lang/en/template-tags.json
new file mode 100644
index 00000000..7bb65540
--- /dev/null
+++ b/modules-available/dozmod/lang/en/template-tags.json
@@ -0,0 +1,43 @@
+{
+ "lang_asteriskRequired": "Fields marked with (*) are required",
+ "lang_canLogin": "Members of this organization can login",
+ "lang_delButton": "Permanently delete selected images",
+ "lang_delete": "Delete",
+ "lang_description": "This list shows images that reached their expire date, or where the image file in the file system is damaged or missing. You need to manually confirm the deletion of these files for safety reasons (software bugs, wrong system time, etc.).",
+ "lang_email": "E-Mail",
+ "lang_emailNotifications": "E-Mail notifications enabled",
+ "lang_hasNewer": "Newer version exists",
+ "lang_heading": "Images marked for deletion",
+ "lang_host": "Host",
+ "lang_image": "VM",
+ "lang_lastLogin": "Last login",
+ "lang_mailConfig": "SMTP configuration for sending mails",
+ "lang_mailConfigHeadline": "email configuration",
+ "lang_mailDescription": "Fill in the following fields if you want to notify tutors\/professors\/lecturers about expiring VMs and lectures. If you leave one of the required fields blank, the feature will be disabled.",
+ "lang_organization": "Organization",
+ "lang_organizationList": "List of organizations",
+ "lang_organizationListHeader": "Set access permissions for organizations",
+ "lang_owner": "Owner",
+ "lang_password": "Password",
+ "lang_port": "Port",
+ "lang_replyTo": "Reply-To address",
+ "lang_save": "Save configuration",
+ "lang_senderAddress": "Sender address",
+ "lang_senderName": "Sender's display name",
+ "lang_size": "Size",
+ "lang_ssl": "SSL mode",
+ "lang_sslExplicit": "Explicit SSL (\"STARTTLS\")",
+ "lang_sslImplicit": "Implicit SSL",
+ "lang_sslNone": "No SSL",
+ "lang_subHeading": "Expired or damaged images",
+ "lang_superUser": "Is super user (can edit\/delete all lectures and VMs)",
+ "lang_test": "Send test mail",
+ "lang_testConfiguration": "To test the configuration, enter a recipient address here",
+ "lang_testRecipient": "Recipient",
+ "lang_user": "User name",
+ "lang_userList": "User list",
+ "lang_userListDescription": "Here you can promote \"super users\", which will have all permissions in the \"Dozenzenmodul\". You can also ban users from accessing this server via the \"Dozentenmodul\".",
+ "lang_userListHeader": "Users known to this satellite",
+ "lang_username": "User name (SMTP auth)",
+ "lang_version": "Version timestamp"
+} \ No newline at end of file
diff --git a/modules-available/dozmod/lang/en/templates/images-delete.json b/modules-available/dozmod/lang/en/templates/images-delete.json
deleted file mode 100644
index fcc8c7e7..00000000
--- a/modules-available/dozmod/lang/en/templates/images-delete.json
+++ /dev/null
@@ -1,12 +0,0 @@
-{
- "lang_delButton": "Permanently delete selected images",
- "lang_delete": "Delete",
- "lang_description": "This list shows images that reached their expire date, or where the image file in the file system is damaged or missing. You need to manually confirm the deletion of these files for safety reasons (software bugs, wrong system time, etc.).",
- "lang_hasNewer": "Newer version exists",
- "lang_heading": "Images marked for deletion",
- "lang_image": "VM",
- "lang_owner": "Owner",
- "lang_size": "Size",
- "lang_subHeading": "Expired or damaged images",
- "lang_version": "Version timestamp"
-} \ No newline at end of file
diff --git a/modules-available/dozmod/lang/en/templates/mailconfig.json b/modules-available/dozmod/lang/en/templates/mailconfig.json
deleted file mode 100644
index 0c0dcd7f..00000000
--- a/modules-available/dozmod/lang/en/templates/mailconfig.json
+++ /dev/null
@@ -1,21 +0,0 @@
-{
- "lang_asteriskRequired": "Fields marked with (*) are required",
- "lang_host": "Host",
- "lang_mailConfig": "SMTP configuration for sending mails",
- "lang_mailConfigHeadline": "email configuration",
- "lang_mailDescription": "Fill in the following fields if you want to notify tutors\/professors\/lecturers about expiring VMs and lectures. If you leave one of the required fields blank, the feature will be disabled.",
- "lang_password": "Password",
- "lang_port": "Port",
- "lang_replyTo": "Reply-To address",
- "lang_save": "Save configuration",
- "lang_senderAddress": "Sender address",
- "lang_senderName": "Sender's display name",
- "lang_ssl": "SSL mode",
- "lang_sslExplicit": "Explicit SSL (\"STARTTLS\")",
- "lang_sslImplicit": "Implicit SSL",
- "lang_sslNone": "No SSL",
- "lang_test": "Send test mail",
- "lang_testConfiguration": "To test the configuration, enter a recipient address here",
- "lang_testRecipient": "Recipient",
- "lang_username": "User name (SMTP auth)"
-} \ No newline at end of file
diff --git a/modules-available/dozmod/lang/en/templates/orglist.json b/modules-available/dozmod/lang/en/templates/orglist.json
deleted file mode 100644
index 37b89e02..00000000
--- a/modules-available/dozmod/lang/en/templates/orglist.json
+++ /dev/null
@@ -1,6 +0,0 @@
-{
- "lang_canLogin": "Members of this organization can login",
- "lang_organization": "Organization",
- "lang_organizationList": "List of organizations",
- "lang_organizationListHeader": "Set access permissions for organizations"
-} \ No newline at end of file
diff --git a/modules-available/dozmod/lang/en/templates/userlist.json b/modules-available/dozmod/lang/en/templates/userlist.json
deleted file mode 100644
index 615f1b14..00000000
--- a/modules-available/dozmod/lang/en/templates/userlist.json
+++ /dev/null
@@ -1,12 +0,0 @@
-{
- "lang_canLogin": "This user can login to this satellite",
- "lang_email": "E-Mail",
- "lang_emailNotifications": "E-Mail notifications enabled",
- "lang_lastLogin": "Last login",
- "lang_organization": "Organization",
- "lang_superUser": "Is super user (can edit\/delete all lectures and VMs)",
- "lang_user": "User name",
- "lang_userList": "User list",
- "lang_userListDescription": "Here you can promote \"super users\", which will have all permissions in the \"Dozenzenmodul\". You can also ban users from accessing this server via the \"Dozentenmodul\".",
- "lang_userListHeader": "Users known to this satellite"
-} \ No newline at end of file
diff --git a/modules-available/eventlog/lang/de/templates/_page.json b/modules-available/eventlog/lang/de/template-tags.json
index b1a292e6..b1a292e6 100644
--- a/modules-available/eventlog/lang/de/templates/_page.json
+++ b/modules-available/eventlog/lang/de/template-tags.json
diff --git a/modules-available/eventlog/lang/en/module.json b/modules-available/eventlog/lang/en/module.json
index a0f6afa6..bf1d01f0 100644
--- a/modules-available/eventlog/lang/en/module.json
+++ b/modules-available/eventlog/lang/en/module.json
@@ -1,7 +1,3 @@
{
- "lang_details": "Details",
- "lang_event": "Event",
- "lang_eventLog": "Server Log",
- "lang_when": "When",
"module_name": "Client Log"
} \ No newline at end of file
diff --git a/modules-available/eventlog/lang/en/templates/_page.json b/modules-available/eventlog/lang/en/template-tags.json
index 21ec64ea..21ec64ea 100644
--- a/modules-available/eventlog/lang/en/templates/_page.json
+++ b/modules-available/eventlog/lang/en/template-tags.json
diff --git a/modules-available/eventlog/lang/pt/module.json b/modules-available/eventlog/lang/pt/module.json
index 4fcf321a..9b185677 100644
--- a/modules-available/eventlog/lang/pt/module.json
+++ b/modules-available/eventlog/lang/pt/module.json
@@ -1,7 +1,3 @@
{
- "lang_details": "Detalhes",
- "lang_event": "Evento",
- "lang_eventLog": "Log dos Eventos",
- "lang_when": "Quando",
"module_name": "Log dos Clientes"
} \ No newline at end of file
diff --git a/modules-available/eventlog/lang/pt/template-tags.json b/modules-available/eventlog/lang/pt/template-tags.json
new file mode 100644
index 00000000..2990bf21
--- /dev/null
+++ b/modules-available/eventlog/lang/pt/template-tags.json
@@ -0,0 +1,6 @@
+{
+ "lang_details": "Detalhes",
+ "lang_event": "Evento",
+ "lang_eventLog": "Log dos Eventos",
+ "lang_when": "Quando"
+} \ No newline at end of file
diff --git a/modules-available/main/lang/de/templates/messagebox-error.json b/modules-available/imgmanagement/lang/pt/template-tags.json
index c44dc44f..c44dc44f 100644
--- a/modules-available/main/lang/de/templates/messagebox-error.json
+++ b/modules-available/imgmanagement/lang/pt/template-tags.json
diff --git a/modules-available/internetaccess/lang/de/templates/_page.json b/modules-available/internetaccess/lang/de/template-tags.json
index 61e324a8..b583783f 100644
--- a/modules-available/internetaccess/lang/de/templates/_page.json
+++ b/modules-available/internetaccess/lang/de/template-tags.json
@@ -10,5 +10,8 @@
"lang_proxyPort": "Port",
"lang_proxyType": "Proxy Typ",
"lang_proxyUsername": "Benutzername",
- "lang_save": "Speichern"
+ "lang_restartFailed": "Neustart eines oder mehrerer Dienste fehlgeschlagen!",
+ "lang_restarting": "Neustart",
+ "lang_save": "Speichern",
+ "lang_serviceRestart": "Neustarten der Dienste"
} \ No newline at end of file
diff --git a/modules-available/internetaccess/lang/de/templates/restart.json b/modules-available/internetaccess/lang/de/templates/restart.json
deleted file mode 100644
index 899a1d28..00000000
--- a/modules-available/internetaccess/lang/de/templates/restart.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "lang_restartFailed": "Neustart eines oder mehrerer Dienste fehlgeschlagen!",
- "lang_restarting": "Neustart",
- "lang_serviceRestart": "Neustarten der Dienste"
-} \ No newline at end of file
diff --git a/modules-available/internetaccess/lang/en/templates/_page.json b/modules-available/internetaccess/lang/en/template-tags.json
index c02ca4f5..1be62f43 100644
--- a/modules-available/internetaccess/lang/en/templates/_page.json
+++ b/modules-available/internetaccess/lang/en/template-tags.json
@@ -10,5 +10,8 @@
"lang_proxyPort": "Port",
"lang_proxyType": "Proxy type",
"lang_proxyUsername": "User",
- "lang_save": "Save"
+ "lang_restartFailed": "Restarting one or more services failed!",
+ "lang_restarting": "Restarting",
+ "lang_save": "Save",
+ "lang_serviceRestart": "Restart of services"
} \ No newline at end of file
diff --git a/modules-available/internetaccess/lang/en/templates/restart.json b/modules-available/internetaccess/lang/en/templates/restart.json
deleted file mode 100644
index badad460..00000000
--- a/modules-available/internetaccess/lang/en/templates/restart.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "lang_restartFailed": "Restarting one or more services failed!",
- "lang_restarting": "Restarting",
- "lang_serviceRestart": "Restart of services"
-} \ No newline at end of file
diff --git a/modules-available/locations/lang/de/templates/location-subnets.json b/modules-available/locations/lang/de/template-tags.json
index 6caa1991..839536f1 100644
--- a/modules-available/locations/lang/de/templates/location-subnets.json
+++ b/modules-available/locations/lang/de/template-tags.json
@@ -1,18 +1,27 @@
{
"lang_addNewSubnet": "Neues Subnetz hinzuf\u00fcgen",
+ "lang_areYouSureNoUndo": "Sind Sie sicher? Diese Aktion kann nicht r\u00fcckg\u00e4ngig gemacht werden.",
"lang_assignSubnetExplanation": "Rechner, die in einen der hier aufgef\u00fchrten Adressbereiche fallen, werden diesem Ort zugeschrieben und erhalten damit z.B. f\u00fcr diesen Raum angepasste Veranstaltungslisten.",
"lang_assignedSubnets": "Zugeordnete Subnetze bzw. IP-Bereiche",
"lang_deleteChildLocations": "Untergeordnete Orte ebenfalls l\u00f6schen",
"lang_deleteLocation": "Ort l\u00f6schen",
"lang_deleteSubnet": "Bereich l\u00f6schen",
+ "lang_edit": "Bearbeiten",
"lang_endAddress": "Endadresse",
+ "lang_listOfSubnets": "Liste der Subnetze",
+ "lang_location": "Ort",
"lang_locationInfo": "Details zu diesem Ort",
+ "lang_locationName": "Name",
"lang_locationSettings": "Raum\/Ort bearbeiten",
+ "lang_locationsMainHeading": "Verwaltung von R\u00e4umen\/Orten",
"lang_matchingMachines": "Enthaltene Rechner",
"lang_name": "Name",
+ "lang_noParent": "Kein \u00fcbergeordneter Ort",
"lang_parentLocation": "\u00dcbergeordneter Ort",
"lang_referencingLectures": "Veranstaltungen",
"lang_save": "Speichern",
"lang_startAddress": "Startadresse",
- "lang_subnet": "IP-Bereich"
+ "lang_subnet": "IP-Bereich",
+ "lang_thisListByLocation": "Zur Ortsansicht",
+ "lang_thisListBySubnet": "Nach Subnetzen auflisten"
} \ No newline at end of file
diff --git a/modules-available/locations/lang/de/templates/locations.json b/modules-available/locations/lang/de/templates/locations.json
deleted file mode 100644
index 3e25ef45..00000000
--- a/modules-available/locations/lang/de/templates/locations.json
+++ /dev/null
@@ -1,10 +0,0 @@
-{
- "lang_areYouSureNoUndo": "Sind Sie sicher? Diese Aktion kann nicht r\u00fcckg\u00e4ngig gemacht werden.",
- "lang_edit": "Bearbeiten",
- "lang_location": "Ort",
- "lang_locationName": "Name",
- "lang_locationsMainHeading": "Verwaltung von R\u00e4umen\/Orten",
- "lang_noParent": "Kein \u00fcbergeordneter Ort",
- "lang_save": "Speichern",
- "lang_thisListBySubnet": "Nach Subnetzen auflisten"
-} \ No newline at end of file
diff --git a/modules-available/locations/lang/de/templates/subnets.json b/modules-available/locations/lang/de/templates/subnets.json
deleted file mode 100644
index b57f87ce..00000000
--- a/modules-available/locations/lang/de/templates/subnets.json
+++ /dev/null
@@ -1,7 +0,0 @@
-{
- "lang_endAddress": "Ende",
- "lang_listOfSubnets": "Liste der Subnetze",
- "lang_location": "Ort",
- "lang_startAddress": "Start",
- "lang_thisListByLocation": "Zur Ortsansicht"
-} \ No newline at end of file
diff --git a/modules-available/locations/lang/en/templates/location-subnets.json b/modules-available/locations/lang/en/template-tags.json
index 2ba94384..7c217732 100644
--- a/modules-available/locations/lang/en/templates/location-subnets.json
+++ b/modules-available/locations/lang/en/template-tags.json
@@ -1,18 +1,27 @@
{
"lang_addNewSubnet": "Add new subnet",
+ "lang_areYouSureNoUndo": "Are you sure? This cannot be undone!",
"lang_assignSubnetExplanation": "Client machines which fall into an IP range listed below will be assigned to this location and will see an according lecture list (e.g. they will see lectures that are exclusively assigned to this location).",
"lang_assignedSubnets": "Assigned subnets \/ IP ranges",
"lang_deleteChildLocations": "Delete child locations aswell",
"lang_deleteLocation": "Delete location",
"lang_deleteSubnet": "Delete range",
+ "lang_edit": "Edit",
"lang_endAddress": "End address",
+ "lang_listOfSubnets": "List of subnets",
+ "lang_location": "Ort",
"lang_locationInfo": "Location details",
+ "lang_locationName": "Name",
"lang_locationSettings": "Edit this room or location",
+ "lang_locationsMainHeading": "Manage rooms and locations",
"lang_matchingMachines": "Matching clients",
"lang_name": "Name",
+ "lang_noParent": "No parent",
"lang_parentLocation": "Parent location",
"lang_referencingLectures": "Assigned Lectures",
"lang_save": "Save",
"lang_startAddress": "Start address",
- "lang_subnet": "IP range"
+ "lang_subnet": "IP range",
+ "lang_thisListByLocation": "List by location",
+ "lang_thisListBySubnet": "List by subnet"
} \ No newline at end of file
diff --git a/modules-available/locations/lang/en/templates/locations.json b/modules-available/locations/lang/en/templates/locations.json
deleted file mode 100644
index db4fd0a7..00000000
--- a/modules-available/locations/lang/en/templates/locations.json
+++ /dev/null
@@ -1,10 +0,0 @@
-{
- "lang_areYouSureNoUndo": "Are you sure? This cannot be undone!",
- "lang_edit": "Edit",
- "lang_location": "Ort",
- "lang_locationName": "Name",
- "lang_locationsMainHeading": "Manage rooms and locations",
- "lang_noParent": "No parent",
- "lang_save": "Save",
- "lang_thisListBySubnet": "List by subnet"
-} \ No newline at end of file
diff --git a/modules-available/locations/lang/en/templates/subnets.json b/modules-available/locations/lang/en/templates/subnets.json
deleted file mode 100644
index 65da254b..00000000
--- a/modules-available/locations/lang/en/templates/subnets.json
+++ /dev/null
@@ -1,7 +0,0 @@
-{
- "lang_endAddress": "End",
- "lang_listOfSubnets": "List of subnets",
- "lang_location": "Location",
- "lang_startAddress": "Start",
- "lang_thisListByLocation": "List by location"
-} \ No newline at end of file
diff --git a/modules-available/main/lang/de/module.json b/modules-available/main/lang/de/module.json
index f03e52ad..b1f0ef93 100644
--- a/modules-available/main/lang/de/module.json
+++ b/modules-available/main/lang/de/module.json
@@ -1,4 +1,4 @@
{
- "module_name": "Dashboard",
- "page_title": "Startseite"
-}
+ "module_name": "Dashboard",
+ "page_title": "Startseite"
+} \ No newline at end of file
diff --git a/modules-available/main/lang/de/template-tags.json b/modules-available/main/lang/de/template-tags.json
new file mode 100644
index 00000000..d31fb64d
--- /dev/null
+++ b/modules-available/main/lang/de/template-tags.json
@@ -0,0 +1,35 @@
+{
+ "lang_bootMenuWarning": "Das Bootmen\u00fc ist veraltet oder wurde noch nicht generiert.",
+ "lang_configurationBasic": "PXE\/Boot",
+ "lang_configurationVariables": "KonfigurationsVariablen",
+ "lang_configure": "Konfigurieren",
+ "lang_dozmod": "Dozentenmodul",
+ "lang_eventLog": "Server Log",
+ "lang_internetAccess": "Internetzugriff",
+ "lang_intro": "Dies ist die bwLehrpool Konfigurationsoberfl\u00e4che.",
+ "lang_introGuest": "Dies ist das Administrations-Interface der lokalen bwLehrpool-Installation. Bitte authentifizieren Sie sich, um Einstellungen vorzunehmen.",
+ "lang_language": "Sprachen",
+ "lang_localization": "Lokalisierung + Integration",
+ "lang_locations": "R\u00e4ume\/Orte",
+ "lang_login": "Anmelden",
+ "lang_logout": "Abmelden",
+ "lang_minilinuxMissing": "Wichtige Dateien der MiniLinux-Installation fehlen.",
+ "lang_needsSetup": "Einrichtung unvollst\u00e4ndig",
+ "lang_news": "vmChooser News",
+ "lang_next": "Weiter",
+ "lang_noExistingAccount": "Es existiert noch kein Administrator-Zugang f\u00fcr diesen Satelliten-Server.",
+ "lang_numerOfImagesMarkedForDeletion": "Zur L\u00f6schung markierte Abbilder",
+ "lang_register": "Registrieren",
+ "lang_server": "Server",
+ "lang_serverStatus": "Server Status",
+ "lang_settings": "Einstellungen",
+ "lang_status": "Status",
+ "lang_systemConfiguration": "Systemkonfiguration",
+ "lang_systemConfigurationNotChosen": "Es wurde noch keine Systemkonfiguration ausgew\u00e4hlt.",
+ "lang_translations": "\u00dcbersetzungen",
+ "lang_vmLocation": "VM Speicherort",
+ "lang_vmLocationNotSet": "Es ist noch kein Speicherort f\u00fcr die Virtuellen Maschinen festgelegt.",
+ "lang_warning": "Warnung",
+ "lang_webInterface": "Web-Schnittstelle",
+ "lang_welcome": "Willkommen"
+} \ No newline at end of file
diff --git a/modules-available/main/lang/de/templates/dialog-generic.json b/modules-available/main/lang/de/templates/dialog-generic.json
deleted file mode 100644
index ff429fdd..00000000
--- a/modules-available/main/lang/de/templates/dialog-generic.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "lang_next": "Weiter"
-} \ No newline at end of file
diff --git a/modules-available/main/lang/de/templates/main-menu.json b/modules-available/main/lang/de/templates/main-menu.json
deleted file mode 100644
index 057bfcf2..00000000
--- a/modules-available/main/lang/de/templates/main-menu.json
+++ /dev/null
@@ -1,22 +0,0 @@
-{
- "lang_configurationBasic": "PXE\/Boot",
- "lang_configurationVariables": "KonfigurationsVariablen",
- "lang_dozmod": "Dozentenmodul",
- "lang_eventLog": "Server Log",
- "lang_internetAccess": "Internetzugriff",
- "lang_language": "Sprachen",
- "lang_localization": "Lokalisierung + Integration",
- "lang_locations": "R\u00e4ume\/Orte",
- "lang_login": "Anmelden",
- "lang_logout": "Abmelden",
- "lang_needsSetup": "Einrichtung unvollst\u00e4ndig",
- "lang_news": "vmChooser News",
- "lang_server": "Server",
- "lang_serverStatus": "Server Status",
- "lang_settings": "Einstellungen",
- "lang_status": "Status",
- "lang_translations": "\u00dcbersetzungen",
- "lang_vmLocation": "VM Speicherort",
- "lang_warning": "Warnung",
- "lang_webInterface": "Web-Schnittstelle"
-}
diff --git a/modules-available/main/lang/de/templates/messagebox-info.json b/modules-available/main/lang/de/templates/messagebox-info.json
deleted file mode 100644
index 0967ef42..00000000
--- a/modules-available/main/lang/de/templates/messagebox-info.json
+++ /dev/null
@@ -1 +0,0 @@
-{}
diff --git a/modules-available/main/lang/de/templates/messagebox-success.json b/modules-available/main/lang/de/templates/messagebox-success.json
deleted file mode 100644
index 0967ef42..00000000
--- a/modules-available/main/lang/de/templates/messagebox-success.json
+++ /dev/null
@@ -1 +0,0 @@
-{}
diff --git a/modules-available/main/lang/de/templates/messagebox-warning.json b/modules-available/main/lang/de/templates/messagebox-warning.json
deleted file mode 100644
index 0967ef42..00000000
--- a/modules-available/main/lang/de/templates/messagebox-warning.json
+++ /dev/null
@@ -1 +0,0 @@
-{}
diff --git a/modules-available/main/lang/de/templates/page-main-guest.json b/modules-available/main/lang/de/templates/page-main-guest.json
deleted file mode 100644
index 876fccac..00000000
--- a/modules-available/main/lang/de/templates/page-main-guest.json
+++ /dev/null
@@ -1,7 +0,0 @@
-{
- "lang_introGuest": "Dies ist das Administrations-Interface der lokalen bwLehrpool-Installation. Bitte authentifizieren Sie sich, um Einstellungen vorzunehmen.",
- "lang_login": "Anmelden",
- "lang_noExistingAccount": "Es existiert noch kein Administrator-Zugang f\u00fcr diesen Satelliten-Server.",
- "lang_register": "Registrieren",
- "lang_welcome": "Willkommen"
-} \ No newline at end of file
diff --git a/modules-available/main/lang/de/templates/page-main.json b/modules-available/main/lang/de/templates/page-main.json
deleted file mode 100644
index a927e4ce..00000000
--- a/modules-available/main/lang/de/templates/page-main.json
+++ /dev/null
@@ -1,11 +0,0 @@
-{
- "lang_bootMenuWarning": "Das Bootmen\u00fc ist veraltet oder wurde noch nicht generiert.",
- "lang_configure": "Konfigurieren",
- "lang_intro": "Dies ist die bwLehrpool Konfigurationsoberfl\u00e4che.",
- "lang_minilinuxMissing": "Wichtige Dateien der MiniLinux-Installation fehlen.",
- "lang_numerOfImagesMarkedForDeletion": "Zur L\u00f6schung markierte Abbilder",
- "lang_systemConfiguration": "Systemkonfiguration",
- "lang_systemConfigurationNotChosen": "Es wurde noch keine Systemkonfiguration ausgew\u00e4hlt.",
- "lang_vmLocationNotSet": "Es ist noch kein Speicherort f\u00fcr die Virtuellen Maschinen festgelegt.",
- "lang_welcome": "Willkommen"
-} \ No newline at end of file
diff --git a/modules-available/main/lang/en/module.json b/modules-available/main/lang/en/module.json
deleted file mode 100644
index 613213d9..00000000
--- a/modules-available/main/lang/en/module.json
+++ /dev/null
@@ -1,13 +0,0 @@
-{
- "lang_intro": "Esta \u00e9 a interface de configura\u00e7\u00e3o do OpenSLX.",
- "lang_introGuest": "This is the administration interface of the local bwLehrpool intallation. Please authenticate yourself to adjust settings.",
- "lang_language": "Language",
- "lang_login": "Login",
- "lang_logout": "Logout",
- "lang_needsSetup": "Setup incomplete",
- "lang_next": "Next",
- "lang_noExistingAccount": "No account has been created yet. Sign up to become the administrator.",
- "lang_register": "Register",
- "lang_warning": "Warning",
- "lang_welcome": "Welcome"
-} \ No newline at end of file
diff --git a/modules-available/main/lang/en/template-tags.json b/modules-available/main/lang/en/template-tags.json
new file mode 100644
index 00000000..f368e8b8
--- /dev/null
+++ b/modules-available/main/lang/en/template-tags.json
@@ -0,0 +1,41 @@
+{
+ "lang_backup": "Backup\/Restore",
+ "lang_bootMenuWarning": "The boot menu is outdated or has not been generated.",
+ "lang_client": "Client",
+ "lang_clientLog": "Client Log",
+ "lang_clientStats": "Client statistics",
+ "lang_configurationBasic": "PXE\/Boot",
+ "lang_configurationVariables": "Configuration Variables",
+ "lang_configure": "Configure",
+ "lang_dozmod": "Tutor module",
+ "lang_eventLog": "Server Log",
+ "lang_internetAccess": "Internet access",
+ "lang_intro": "This is the bwLehrpool configuration interface.",
+ "lang_introGuest": "This is the administration interface of the local bwLehrpool intallation. Please authenticate yourself to adjust settings.",
+ "lang_language": "Language",
+ "lang_localization": "Localization",
+ "lang_locations": "Rooms\/Locations",
+ "lang_loggedInPrefix": "Logged in as",
+ "lang_loggedInSuffix": " ",
+ "lang_login": "Login",
+ "lang_logout": "Logout",
+ "lang_minilinuxMissing": "Important files from the mini Linux installation are missing.",
+ "lang_needsSetup": "Setup incomplete",
+ "lang_news": "vmChooser news",
+ "lang_next": "Next",
+ "lang_noExistingAccount": "No account has been created yet. Sign up to become the administrator.",
+ "lang_numerOfImagesMarkedForDeletion": "Images marked for deletion",
+ "lang_register": "Register",
+ "lang_server": "Server",
+ "lang_serverStatus": "Server status",
+ "lang_settings": "Settings",
+ "lang_status": "Status",
+ "lang_systemConfiguration": "System Configuration",
+ "lang_systemConfigurationNotChosen": "A system configuration has not been chosen yet.",
+ "lang_translations": "Translations",
+ "lang_vmLocation": "VM Location",
+ "lang_vmLocationNotSet": "A location for the virtual machine is not set yet.",
+ "lang_warning": "Warning",
+ "lang_webInterface": "Web interface",
+ "lang_welcome": "Welcome"
+} \ No newline at end of file
diff --git a/modules-available/main/lang/en/templates/dialog-generic.json b/modules-available/main/lang/en/templates/dialog-generic.json
deleted file mode 100644
index c7551ed3..00000000
--- a/modules-available/main/lang/en/templates/dialog-generic.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "lang_next": "Next"
-} \ No newline at end of file
diff --git a/modules-available/main/lang/en/templates/main-menu.json b/modules-available/main/lang/en/templates/main-menu.json
deleted file mode 100644
index 635c7aa8..00000000
--- a/modules-available/main/lang/en/templates/main-menu.json
+++ /dev/null
@@ -1,28 +0,0 @@
-{
- "lang_backup": "Backup\/Restore",
- "lang_client": "Client",
- "lang_clientLog": "Client Log",
- "lang_clientStats": "Client statistics",
- "lang_configurationBasic": "PXE\/Boot",
- "lang_configurationVariables": "Configuration Variables",
- "lang_dozmod": "Tutor module",
- "lang_eventLog": "Server Log",
- "lang_internetAccess": "Internet access",
- "lang_language": "Language",
- "lang_localization": "Localization",
- "lang_locations": "Rooms\/Locations",
- "lang_login": "Login",
- "lang_logout": "Logout",
- "lang_needsSetup": "Setup incomplete",
- "lang_news": "vmChooser news",
- "lang_server": "Server",
- "lang_serverStatus": "Server status",
- "lang_settings": "Settings",
- "lang_status": "Status",
- "lang_translations": "Translations",
- "lang_vmLocation": "VM Location",
- "lang_warning": "Warning",
- "lang_webInterface": "Web interface",
- "lang_loggedInPrefix": "Logged in as",
- "lang_loggedInSuffix": " "
-}
diff --git a/modules-available/main/lang/en/templates/messagebox-warning.json b/modules-available/main/lang/en/templates/messagebox-warning.json
deleted file mode 100644
index 2c63c085..00000000
--- a/modules-available/main/lang/en/templates/messagebox-warning.json
+++ /dev/null
@@ -1,2 +0,0 @@
-{
-}
diff --git a/modules-available/main/lang/en/templates/page-main-guest.json b/modules-available/main/lang/en/templates/page-main-guest.json
deleted file mode 100644
index 6526f5bd..00000000
--- a/modules-available/main/lang/en/templates/page-main-guest.json
+++ /dev/null
@@ -1,7 +0,0 @@
-{
- "lang_introGuest": "This is the administration interface of the local bwLehrpool intallation. Please authenticate yourself to adjust settings.",
- "lang_login": "Login",
- "lang_noExistingAccount": "No account has been created yet. Sign up to become the administrator.",
- "lang_register": "Register",
- "lang_welcome": "Welcome"
-} \ No newline at end of file
diff --git a/modules-available/main/lang/en/templates/page-main.json b/modules-available/main/lang/en/templates/page-main.json
deleted file mode 100644
index 8031ac1c..00000000
--- a/modules-available/main/lang/en/templates/page-main.json
+++ /dev/null
@@ -1,11 +0,0 @@
-{
- "lang_bootMenuWarning": "The boot menu is outdated or has not been generated.",
- "lang_configure": "Configure",
- "lang_intro": "This is the bwLehrpool configuration interface.",
- "lang_minilinuxMissing": "Important files from the mini Linux installation are missing.",
- "lang_numerOfImagesMarkedForDeletion": "Images marked for deletion",
- "lang_systemConfiguration": "System Configuration",
- "lang_systemConfigurationNotChosen": "A system configuration has not been chosen yet.",
- "lang_vmLocationNotSet": "A location for the virtual machine is not set yet.",
- "lang_welcome": "Welcome"
-} \ No newline at end of file
diff --git a/modules-available/main/lang/pt/module.json b/modules-available/main/lang/pt/template-tags.json
index e4e35acd..d9acf58b 100644
--- a/modules-available/main/lang/pt/module.json
+++ b/modules-available/main/lang/pt/template-tags.json
@@ -11,4 +11,4 @@
"lang_translations": "Tradu\u00e7\u00f5es",
"lang_warning": "Aten\u00e7\u00e3o",
"lang_welcome": "Bem-vindo"
-}
+} \ No newline at end of file
diff --git a/modules-available/main/templates/main-menu.html b/modules-available/main/templates/main-menu.html
index 65085ee6..af8f833f 100644
--- a/modules-available/main/templates/main-menu.html
+++ b/modules-available/main/templates/main-menu.html
@@ -22,7 +22,7 @@
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
- <a class="navbar-brand" href="#">OpenSLX</a>
+ <a class="navbar-brand" href="?do=Main">OpenSLX</a>
</div>
<!-- Collect the nav links, forms, and other content for toggling -->
<div class="collapse navbar-collapse" id="bs-sidebar-navbar-collapse-1">
diff --git a/modules-available/minilinux/lang/de/templates/filelist.json b/modules-available/minilinux/lang/de/template-tags.json
index 214d758a..6a4e7b57 100644
--- a/modules-available/minilinux/lang/de/templates/filelist.json
+++ b/modules-available/minilinux/lang/de/template-tags.json
@@ -4,7 +4,9 @@
"lang_canUpdate2": "kann aktualisiert werden. F\u00fcr einen reibungslosen Betrieb wird empfohlen, alle Komponenten auf dem aktuellen Stand zu halten.",
"lang_configurationPackageNotFound": "Keine Konfigurationspakete gefunden!",
"lang_desiredVersion": "Gew\u00fcnschte Version",
+ "lang_errorGetting": "Fehler beim Herunterladen der Liste!",
"lang_filesInVersion": "Dateien zu Version",
+ "lang_listObtained": "Liste wird heruntergeladen...",
"lang_outdated": "Veraltet",
"lang_redownload": "Erneut herunterladen",
"lang_systemUpdated": "Das System ist auf dem aktuellen Stand.",
diff --git a/modules-available/minilinux/lang/de/templates/download.json b/modules-available/minilinux/lang/de/templates/download.json
deleted file mode 100644
index 0967ef42..00000000
--- a/modules-available/minilinux/lang/de/templates/download.json
+++ /dev/null
@@ -1 +0,0 @@
-{}
diff --git a/modules-available/minilinux/lang/de/templates/page-minilinux.json b/modules-available/minilinux/lang/de/templates/page-minilinux.json
deleted file mode 100644
index f30f7b76..00000000
--- a/modules-available/minilinux/lang/de/templates/page-minilinux.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "lang_errorGetting": "Fehler beim Herunterladen der Liste!",
- "lang_listObtained": "Liste wird heruntergeladen..."
-} \ No newline at end of file
diff --git a/modules-available/minilinux/lang/en/module.json b/modules-available/minilinux/lang/en/module.json
index b9262b5a..01cb3d00 100644
--- a/modules-available/minilinux/lang/en/module.json
+++ b/modules-available/minilinux/lang/en/module.json
@@ -1,12 +1,3 @@
{
- "lang_actual": "Actual",
- "lang_canUpdate1": "At least one component of",
- "lang_canUpdate2": "can be updated. For a smooth operation, it is recommended to keep all components up to date.",
- "lang_configurationPackageNotFound": "Configuration package not found!",
- "lang_errorGetting": "Error while downloading list!",
- "lang_listObtained": "Downloading list...",
- "lang_outdated": "Outdated",
- "lang_systemUpdated": "The system is up to date.",
- "lang_update": "Update",
"module_name": "Minilinux"
} \ No newline at end of file
diff --git a/modules-available/minilinux/lang/en/templates/filelist.json b/modules-available/minilinux/lang/en/template-tags.json
index 89fed42b..28942f93 100644
--- a/modules-available/minilinux/lang/en/templates/filelist.json
+++ b/modules-available/minilinux/lang/en/template-tags.json
@@ -4,7 +4,9 @@
"lang_canUpdate2": "can be updated. For a smooth operation, it is recommended to keep all components up to date.",
"lang_configurationPackageNotFound": "Configuration package not found!",
"lang_desiredVersion": "Desired version",
+ "lang_errorGetting": "Error while downloading list!",
"lang_filesInVersion": "Files for version",
+ "lang_listObtained": "Downloading list...",
"lang_outdated": "Outdated",
"lang_redownload": "Download again",
"lang_systemUpdated": "The system is up to date.",
diff --git a/modules-available/minilinux/lang/en/templates/download.json b/modules-available/minilinux/lang/en/templates/download.json
deleted file mode 100644
index 2c63c085..00000000
--- a/modules-available/minilinux/lang/en/templates/download.json
+++ /dev/null
@@ -1,2 +0,0 @@
-{
-}
diff --git a/modules-available/minilinux/lang/en/templates/page-minilinux.json b/modules-available/minilinux/lang/en/templates/page-minilinux.json
deleted file mode 100644
index 2f59fa57..00000000
--- a/modules-available/minilinux/lang/en/templates/page-minilinux.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "lang_errorGetting": "Error while downloading list!",
- "lang_listObtained": "Downloading list..."
-} \ No newline at end of file
diff --git a/modules-available/minilinux/lang/pt/module.json b/modules-available/minilinux/lang/pt/module.json
index 0ce7629d..01cb3d00 100644
--- a/modules-available/minilinux/lang/pt/module.json
+++ b/modules-available/minilinux/lang/pt/module.json
@@ -1,12 +1,3 @@
{
- "lang_actual": "Atual",
- "lang_canUpdate1": "Pelo menos um componente de",
- "lang_canUpdate2": "pode ser atualizado. Para um bom funcionamento, recomenda-se manter todos os componentes atualizados.",
- "lang_configurationPackageNotFound": "Pacote de configura\u00e7\u00e3o n\u00e3o encontrado!",
- "lang_errorGetting": "Erro ao baixar a lista!",
- "lang_listObtained": "Carregando lista...",
- "lang_outdated": "Desatualizado",
- "lang_systemUpdated": "O sistema est\u00e1 atualizado.",
- "lang_update": "Atualizar",
"module_name": "Minilinux"
} \ No newline at end of file
diff --git a/modules-available/minilinux/lang/pt/template-tags.json b/modules-available/minilinux/lang/pt/template-tags.json
new file mode 100644
index 00000000..f7225455
--- /dev/null
+++ b/modules-available/minilinux/lang/pt/template-tags.json
@@ -0,0 +1,11 @@
+{
+ "lang_actual": "Atual",
+ "lang_canUpdate1": "Pelo menos um componente de",
+ "lang_canUpdate2": "pode ser atualizado. Para um bom funcionamento, recomenda-se manter todos os componentes atualizados.",
+ "lang_configurationPackageNotFound": "Pacote de configura\u00e7\u00e3o n\u00e3o encontrado!",
+ "lang_errorGetting": "Erro ao baixar a lista!",
+ "lang_listObtained": "Carregando lista...",
+ "lang_outdated": "Desatualizado",
+ "lang_systemUpdated": "O sistema est\u00e1 atualizado.",
+ "lang_update": "Atualizar"
+} \ No newline at end of file
diff --git a/modules-available/news/lang/de/templates/page-news.json b/modules-available/news/lang/de/template-tags.json
index 7801584d..7801584d 100644
--- a/modules-available/news/lang/de/templates/page-news.json
+++ b/modules-available/news/lang/de/template-tags.json
diff --git a/modules-available/news/lang/en/module.json b/modules-available/news/lang/en/module.json
index 5acbe58d..b13eca27 100644
--- a/modules-available/news/lang/en/module.json
+++ b/modules-available/news/lang/en/module.json
@@ -1,12 +1,3 @@
{
- "lang_activeNews": "News",
- "lang_content": "Content",
- "lang_date": "Date",
- "lang_delete": "Delete",
- "lang_latestUpdate": "Last Update",
- "lang_newsOld": "Old News",
- "lang_save": "Save",
- "lang_show": "Show",
- "lang_title": "Title",
"module_name": "News"
} \ No newline at end of file
diff --git a/modules-available/news/lang/en/templates/page-news.json b/modules-available/news/lang/en/template-tags.json
index df63658c..a2c08d50 100644
--- a/modules-available/news/lang/en/templates/page-news.json
+++ b/modules-available/news/lang/en/template-tags.json
@@ -1,4 +1,5 @@
{
+ "lang_activeNews": "News",
"lang_content": "Content",
"lang_date": "Date",
"lang_delete": "Delete",
diff --git a/modules-available/news/lang/pt/module.json b/modules-available/news/lang/pt/module.json
index e1997fce..ac4b7e3e 100644
--- a/modules-available/news/lang/pt/module.json
+++ b/modules-available/news/lang/pt/module.json
@@ -1,13 +1,3 @@
{
- "lang_activeNews": "Novidades",
- "lang_content": "Conte\u00fado",
- "lang_date": "Data",
- "lang_delete": "Excluir",
- "lang_latestUpdate": "\u00daltima Atualiza\u00e7\u00e3o",
- "lang_newsIntro": "Aqui voc\u00ea tem a possibilidade de editar as novidades que s\u00e3o mostradas para os clientes do bwLehrpool.",
- "lang_newsOld": "Antigas",
- "lang_save": "Salvar",
- "lang_show": "Mostrar",
- "lang_title": "T\u00edtulo",
"module_name": "Novidades"
} \ No newline at end of file
diff --git a/modules-available/news/lang/pt/template-tags.json b/modules-available/news/lang/pt/template-tags.json
new file mode 100644
index 00000000..3c03cb34
--- /dev/null
+++ b/modules-available/news/lang/pt/template-tags.json
@@ -0,0 +1,12 @@
+{
+ "lang_activeNews": "Novidades",
+ "lang_content": "Conte\u00fado",
+ "lang_date": "Data",
+ "lang_delete": "Excluir",
+ "lang_latestUpdate": "\u00daltima Atualiza\u00e7\u00e3o",
+ "lang_newsIntro": "Aqui voc\u00ea tem a possibilidade de editar as novidades que s\u00e3o mostradas para os clientes do bwLehrpool.",
+ "lang_newsOld": "Antigas",
+ "lang_save": "Salvar",
+ "lang_show": "Mostrar",
+ "lang_title": "T\u00edtulo"
+} \ No newline at end of file
diff --git a/modules-available/serversetup/lang/de/templates/ipxe.json b/modules-available/serversetup/lang/de/template-tags.json
index edce0b5e..bdbcb1ec 100644
--- a/modules-available/serversetup/lang/de/templates/ipxe.json
+++ b/modules-available/serversetup/lang/de/template-tags.json
@@ -1,12 +1,17 @@
{
+ "lang_active": "Aktiv",
+ "lang_bootAddress": "Boot-Adresse des Servers",
"lang_bootBehavior": "Standard-Bootverhalten",
+ "lang_bootHint": "Das Bootmen\u00fc muss nach einer \u00c4nderung der IP-Adresse neu generiert werden. In der Regel geschieht dies automatisch, der Vorgang kann in der Sektion Bootmen\u00fc allerdings auch manuell ausgel\u00f6st werden.",
"lang_bootInfo": "Hier k\u00f6nnen Anpassungen am Erscheinungsbild des Bootmen\u00fcs vorgenommen werden.",
"lang_bootMenu": "Bootmen\u00fc",
"lang_bootMenuCreate": "Bootmen\u00fc erzeugen",
+ "lang_chooseIP": "Bitte w\u00e4hlen Sie die IP-Adresse, \u00fcber die der Server von den Clients zum Booten angesprochen werden soll.",
"lang_close": "Schlie\u00dfen",
"lang_compile": "Kompilieren",
"lang_customEntry": "Eigener Eintrag",
"lang_example": "Beispiel",
+ "lang_generationFailed": "Erzeugen des Bootmen\u00fcs fehlgeschlagen. Der Netzwerkboot von bwLehrpool wird wahrscheinlich nicht funktionieren. Wenn Sie den Fehler nicht selbst beheben k\u00f6nnen, melden Sie bitte obenstehende Fehlermeldung an das bwLehrpool-Projekt.",
"lang_localHDD": "Lokale HDD",
"lang_masterPassword": "Master-Passwort",
"lang_masterPasswordHelp": "Das Master-Passwort wird ben\u00f6tigt, um einen Booteintrag direkt am Client tempor\u00e4r durch Dr\u00fccken der Tab-Taste zu editieren. Da dies f\u00fcr Manipulation am Client genutzt werden kann, sollte diese Funktion unbedingt mit einem Passwort gesch\u00fctzt werden.",
@@ -15,5 +20,7 @@
"lang_menuCustomHint2": "Sie k\u00f6nnen ein oder mehrere Eintr\u00e4ge erzeugen. Wenn Sie einen Eintrag erzeugen m\u00f6chten, der automatisch gestartet wird, wenn der Benutzer keine Auswahl t\u00e4tigt, vergeben Sie als",
"lang_menuCustomHint3": "und w\u00e4hlen Sie als Standard-Bootverhalten ebenfalls custom.",
"lang_menuDisplayTime": "Anzeigedauer des Men\u00fcs",
- "lang_seconds": "Sekunden"
+ "lang_menuGeneration": "Erzeugen des Bootmen\u00fcs",
+ "lang_seconds": "Sekunden",
+ "lang_set": "Setzen"
} \ No newline at end of file
diff --git a/modules-available/serversetup/lang/de/templates/ipaddress.json b/modules-available/serversetup/lang/de/templates/ipaddress.json
deleted file mode 100644
index eb3d34d3..00000000
--- a/modules-available/serversetup/lang/de/templates/ipaddress.json
+++ /dev/null
@@ -1,7 +0,0 @@
-{
- "lang_active": "Aktiv",
- "lang_bootAddress": "Boot-Adresse des Servers",
- "lang_bootHint": "Das Bootmen\u00fc muss nach einer \u00c4nderung der IP-Adresse neu generiert werden. In der Regel geschieht dies automatisch, der Vorgang kann in der Sektion Bootmen\u00fc allerdings auch manuell ausgel\u00f6st werden.",
- "lang_chooseIP": "Bitte w\u00e4hlen Sie die IP-Adresse, \u00fcber die der Server von den Clients zum Booten angesprochen werden soll.",
- "lang_set": "Setzen"
-} \ No newline at end of file
diff --git a/modules-available/serversetup/lang/de/templates/ipxe_update.json b/modules-available/serversetup/lang/de/templates/ipxe_update.json
deleted file mode 100644
index b984de19..00000000
--- a/modules-available/serversetup/lang/de/templates/ipxe_update.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "lang_generationFailed": "Erzeugen des Bootmen\u00fcs fehlgeschlagen. Der Netzwerkboot von bwLehrpool wird wahrscheinlich nicht funktionieren. Wenn Sie den Fehler nicht selbst beheben k\u00f6nnen, melden Sie bitte obenstehende Fehlermeldung an das bwLehrpool-Projekt.",
- "lang_menuGeneration": "Erzeugen des Bootmen\u00fcs"
-} \ No newline at end of file
diff --git a/modules-available/serversetup/lang/en/module.json b/modules-available/serversetup/lang/en/module.json
index c7c06098..aeea610c 100644
--- a/modules-available/serversetup/lang/en/module.json
+++ b/modules-available/serversetup/lang/en/module.json
@@ -1,34 +1,3 @@
{
- "lang_active": "Active",
- "lang_bootAddress": "Boot Address of the Server",
- "lang_bootBehavior": "Default Boot Behavior",
- "lang_bootHint": "The Boot menu must be recreated after changing the IP address. Usually this is done automatically, but the process can also be triggered manually in the section of the boot menu.",
- "lang_bootInfo": "Here adjustments can be made to the appearance of the boot menu.",
- "lang_bootMenu": "Boot Menu",
- "lang_bootMenuCreate": "Create Boot Menu",
- "lang_cancel": "Cancel",
- "lang_chooseIP": "Please select the IP address that the client server will use to boot.",
- "lang_close": "Close",
- "lang_compile": "Compile",
- "lang_compilingIpxe": "Compiling iPXE",
- "lang_customScript": "Custom Script",
- "lang_download": "Download",
- "lang_example": "Example",
- "lang_extension": "Extension",
- "lang_ipxeInfo": "Here it is possible to compile and download iPXE for USB using a custom script.",
- "lang_ipxeWarning": "If this is your first time compiling, it may take 1 to 4 minutes to finish.",
- "lang_loading": "Loading",
- "lang_localHDD": "Local HDD",
- "lang_menuCustom": "Custom Extra Menu",
- "lang_menuCustomHint1": "Here you have the opportunity to add your own menu code to the displayed PXE menu, eg to refer to other PXE server. The format corresponds to the syslinux menu format.",
- "lang_menuCustomHint2": "You can create one or more entries. If you want to create an entry that starts automatically when the user makes a selection, assign as",
- "lang_menuCustomHint3": "and select as the default boot behavior my-entry as well.",
- "lang_menuDisplayTime": "Menu Display Time",
- "lang_mountIpxe": "Mount iPXE",
- "lang_restoreDefault": "Restore Default",
- "lang_saveScript": "Save Script",
- "lang_seconds": "Seconds",
- "lang_set": "Set",
- "lang_success": "Successfully create file:",
"module_name": "iPXE \/ Boot Menu"
} \ No newline at end of file
diff --git a/modules-available/serversetup/lang/en/templates/ipxe.json b/modules-available/serversetup/lang/en/template-tags.json
index 70c17f43..af22081a 100644
--- a/modules-available/serversetup/lang/en/templates/ipxe.json
+++ b/modules-available/serversetup/lang/en/template-tags.json
@@ -1,9 +1,13 @@
{
+ "lang_active": "Active",
+ "lang_bootAddress": "Boot Address of the Server",
"lang_bootBehavior": "Default Boot Behavior",
+ "lang_bootHint": "The Boot menu must be recreated after changing the IP address. Usually this is done automatically, but the process can also be triggered manually in the section of the boot menu.",
"lang_bootInfo": "Here adjustments can be made to the appearance of the boot menu.",
"lang_bootMenu": "Boot Menu",
"lang_bootMenuCreate": "Create Boot Menu",
"lang_cancel": "Cancel",
+ "lang_chooseIP": "Please select the IP address that the client server will use to boot.",
"lang_close": "Close",
"lang_compile": "Compile",
"lang_compilingIpxe": "Compiling iPXE",
@@ -12,6 +16,7 @@
"lang_download": "Download",
"lang_example": "Example",
"lang_extension": "Extension",
+ "lang_generationFailed": "Could not generate boot menu. The bwLehrpool-System might not work properly. If you can't fix the problem, please report the error message above to the bwLehrpool project.",
"lang_ipxeInfo": "Here it is possible to compile iPXE using a custom script.",
"lang_ipxeWarning": "If this is your first time compiling, it may take 1 to 4 minutes to finish.",
"lang_loading": "Loading",
@@ -23,9 +28,11 @@
"lang_menuCustomHint2": "You can create one or more entries. If you want to create an entry that starts automatically when the user makes a selection, assign as",
"lang_menuCustomHint3": "and select as the default boot behavior custom as well.",
"lang_menuDisplayTime": "Menu Display Time",
+ "lang_menuGeneration": "Generating boot menu...",
"lang_mountIpxe": "Mount iPXE",
"lang_restoreDefault": "Restore Default",
"lang_saveScript": "Save Script",
"lang_seconds": "Seconds",
+ "lang_set": "Set",
"lang_success": "Successfully create file:"
-}
+} \ No newline at end of file
diff --git a/modules-available/serversetup/lang/en/templates/ipaddress.json b/modules-available/serversetup/lang/en/templates/ipaddress.json
deleted file mode 100644
index 699aeacc..00000000
--- a/modules-available/serversetup/lang/en/templates/ipaddress.json
+++ /dev/null
@@ -1,7 +0,0 @@
-{
- "lang_active": "Active",
- "lang_bootAddress": "Boot Address of the Server",
- "lang_bootHint": "The Boot menu must be recreated after changing the IP address. Usually this is done automatically, but the process can also be triggered manually in the section of the boot menu.",
- "lang_chooseIP": "Please select the IP address that the client server will use to boot.",
- "lang_set": "Set"
-} \ No newline at end of file
diff --git a/modules-available/serversetup/lang/en/templates/ipxe_update.json b/modules-available/serversetup/lang/en/templates/ipxe_update.json
deleted file mode 100644
index b33b12dd..00000000
--- a/modules-available/serversetup/lang/en/templates/ipxe_update.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "lang_generationFailed": "Could not generate boot menu. The bwLehrpool-System might not work properly. If you can't fix the problem, please report the error message above to the bwLehrpool project.",
- "lang_menuGeneration": "Generating boot menu..."
-} \ No newline at end of file
diff --git a/modules-available/serversetup/lang/pt/module.json b/modules-available/serversetup/lang/pt/module.json
index e0e5a2b6..aeea610c 100644
--- a/modules-available/serversetup/lang/pt/module.json
+++ b/modules-available/serversetup/lang/pt/module.json
@@ -1,40 +1,3 @@
{
- "lang_active": "Ativo",
- "lang_bootAddress": "Endere\u00e7o Boot do Servidor",
- "lang_bootBehavior": "Comportamento Padr\u00e3o de Boot",
- "lang_bootHint": "O menu de boot deve ser recriado ap\u00f3s alterar o endere\u00e7o IP. Geralmente isso \u00e9 feito automaticamente, mas o processo tamb\u00e9m pode ser acionado manualmente na se\u00e7\u00e3o do menu de boot.",
- "lang_bootInfo": "Aqui ajustes podem ser feitos na apar\u00eancia do menu de boot.",
- "lang_bootMenu": "Menu de Boot",
- "lang_bootMenuCreate": "Criar Menu de Boot",
- "lang_cancel": "Cancelar",
- "lang_chooseIP": "Por favor, selecione o endere\u00e7o IP que o servidor do cliente utilizar\u00e1 realizar o boot.",
- "lang_close": "Fechar",
- "lang_compile": "Compilar",
- "lang_compileIso": "Compilar .iso",
- "lang_compileKkpxe": "Compilar .kkpxe",
- "lang_compileUsb": "Compilar .usb",
- "lang_compilingIpxe": "Compilando iPXE",
- "lang_customScript": "Script Customizado",
- "lang_download": "Baixar",
- "lang_example": "Exemplo",
- "lang_extension": "Extens\u00e3o",
- "lang_ipxeAdv": "Gerar iPXE no Modo Avan\u00e7ado",
- "lang_ipxeInfo": "Aqui \u00e9 poss\u00edvel compilar e baixar o iPXE utilizando um script customiz\u00e1vel.",
- "lang_ipxeSmp": "Gerar iPXE no Modo Simples",
- "lang_ipxeSmpInfo": "Aqui voc\u00ea pode escolher gerar o iPXE escolhendo apenas uma das extens\u00f5es abaixo",
- "lang_ipxeWarning": "Se esta for a primeira vez compilando, poder\u00e1 levar entre 1 e 4 minutos para que termine.",
- "lang_loading": "Carregando",
- "lang_localHDD": "HDD Local",
- "lang_menuCustom": "Menu Adicional Customizado",
- "lang_menuCustomHint1": "Aqui voc\u00ea tem a oportunidade de adicionar seu pr\u00f3prio c\u00f3digo de menu para o menu PXE exibido, por exemplo, para se referir a outro servidor PXE. O formato corresponde ao formato de menu syslinux.",
- "lang_menuCustomHint2": "Voc\u00ea pode criar uma ou mais entradas. Se voc\u00ea quiser criar uma entrada que \u00e9 iniciada automaticamente quando o usu\u00e1rio faz uma sele\u00e7\u00e3o, atribua como",
- "lang_menuCustomHint3": "e selecione como o comportamento de boot padr\u00e3o tamb\u00e9m my-entry.",
- "lang_menuDisplayTime": "Tempo de Exibi\u00e7\u00e3o do Menu",
- "lang_mountIpxe": "Montar iPXE",
- "lang_restoreDefault": "Restaurar Padr\u00e3o",
- "lang_saveScript": "Salvar Script",
- "lang_seconds": "Segundos",
- "lang_set": "Definir",
- "lang_success": "Arquivo criado com sucesso:",
"module_name": "iPXE \/ Boot Menu"
} \ No newline at end of file
diff --git a/modules-available/serversetup/lang/pt/templates/ipxe-adv.json b/modules-available/serversetup/lang/pt/template-tags.json
index 19d120ad..3120c58c 100644
--- a/modules-available/serversetup/lang/pt/templates/ipxe-adv.json
+++ b/modules-available/serversetup/lang/pt/template-tags.json
@@ -1,17 +1,27 @@
{
+ "lang_active": "Ativo",
+ "lang_bootAddress": "Endere\u00e7o Boot do Servidor",
"lang_bootBehavior": "Comportamento Padr\u00e3o de Boot",
+ "lang_bootHint": "O menu de boot deve ser recriado ap\u00f3s alterar o endere\u00e7o IP. Geralmente isso \u00e9 feito automaticamente, mas o processo tamb\u00e9m pode ser acionado manualmente na se\u00e7\u00e3o do menu de boot.",
"lang_bootInfo": "Aqui ajustes podem ser feitos na apar\u00eancia do menu de boot.",
"lang_bootMenu": "Menu de Boot",
"lang_bootMenuCreate": "Criar Menu de Boot",
"lang_cancel": "Cancelar",
+ "lang_chooseIP": "Por favor, selecione o endere\u00e7o IP que o servidor do cliente utilizar\u00e1 realizar o boot.",
"lang_close": "Fechar",
"lang_compile": "Compilar",
+ "lang_compileIso": "Compilar .iso",
+ "lang_compileKkpxe": "Compilar .kkpxe",
+ "lang_compileUsb": "Compilar .usb",
"lang_compilingIpxe": "Compilando iPXE",
"lang_customScript": "Script Customizado",
"lang_download": "Baixar",
"lang_example": "Exemplo",
"lang_extension": "Extens\u00e3o",
+ "lang_ipxeAdv": "Gerar iPXE no Modo Avan\u00e7ado",
"lang_ipxeInfo": "Aqui \u00e9 poss\u00edvel compilar e baixar o iPXE utilizando um script customiz\u00e1vel.",
+ "lang_ipxeSmp": "Gerar iPXE no Modo Simples",
+ "lang_ipxeSmpInfo": "Aqui voc\u00ea pode escolher gerar o iPXE escolhendo apenas uma das extens\u00f5es abaixo",
"lang_ipxeWarning": "Se esta for a primeira vez compilando, poder\u00e1 levar entre 1 e 4 minutos para que termine.",
"lang_loading": "Carregando",
"lang_localHDD": "HDD Local",
@@ -24,5 +34,6 @@
"lang_restoreDefault": "Restaurar Padr\u00e3o",
"lang_saveScript": "Salvar Script",
"lang_seconds": "Segundos",
+ "lang_set": "Definir",
"lang_success": "Arquivo criado com sucesso:"
-}
+} \ No newline at end of file
diff --git a/modules-available/session/lang/de/templates/page-login.json b/modules-available/session/lang/de/template-tags.json
index 03576a07..03576a07 100644
--- a/modules-available/session/lang/de/templates/page-login.json
+++ b/modules-available/session/lang/de/template-tags.json
diff --git a/modules-available/session/lang/en/module.json b/modules-available/session/lang/en/module.json
deleted file mode 100644
index 6df26f22..00000000
--- a/modules-available/session/lang/en/module.json
+++ /dev/null
@@ -1,8 +0,0 @@
-{
- "lang_enter": "Enter",
- "lang_login": "Login",
- "lang_password": "Password",
- "lang_register": "Register",
- "lang_rememberID": "Remember User",
- "lang_username": "Username"
-} \ No newline at end of file
diff --git a/modules-available/session/lang/en/templates/page-login.json b/modules-available/session/lang/en/template-tags.json
index 4b192a7a..4b192a7a 100644
--- a/modules-available/session/lang/en/templates/page-login.json
+++ b/modules-available/session/lang/en/template-tags.json
diff --git a/modules-available/session/lang/pt/module.json b/modules-available/session/lang/pt/template-tags.json
index 3d1e19eb..3d1e19eb 100644
--- a/modules-available/session/lang/pt/module.json
+++ b/modules-available/session/lang/pt/template-tags.json
diff --git a/modules-available/statistics/lang/de/module.json b/modules-available/statistics/lang/de/module.json
index 35a62cce..85246e25 100644
--- a/modules-available/statistics/lang/de/module.json
+++ b/modules-available/statistics/lang/de/module.json
@@ -1,4 +1,4 @@
{
- "module_name": "Client-Statistiken",
- "page_title": "Client-Statistiken"
-}
+ "module_name": "Client-Statistiken",
+ "page_title": "Client-Statistiken"
+} \ No newline at end of file
diff --git a/modules-available/statistics/lang/de/template-tags.json b/modules-available/statistics/lang/de/template-tags.json
new file mode 100644
index 00000000..138ee4a4
--- /dev/null
+++ b/modules-available/statistics/lang/de/template-tags.json
@@ -0,0 +1,69 @@
+{
+ "lang_64bitSupport": "64\u2009Bit Gast-Support",
+ "lang_address": "Adresse",
+ "lang_clientList": "Liste ausgew\u00e4hlter Rechner",
+ "lang_cores": "Kerne",
+ "lang_cpuCores": "CPU-Kerne",
+ "lang_cpuModel": "CPU",
+ "lang_details": "Details",
+ "lang_event": "Ereignis",
+ "lang_firstSeen": "Erste Aktivit\u00e4t",
+ "lang_gbRam": "RAM",
+ "lang_hardwareSummary": "Hardware",
+ "lang_hdds": "Festplatten",
+ "lang_hostname": "Hostname",
+ "lang_hours": "Stunden",
+ "lang_inUseMachines": "In Verwendung",
+ "lang_ip": "IP-Adresse",
+ "lang_knownMachines": "Bekannte Clients",
+ "lang_kvmState": "Status",
+ "lang_kvmStats": "64\u2009Bit Gast-Support",
+ "lang_kvmSupport": "64\u2009Bit G\u00e4ste",
+ "lang_lastBoot": "Letzter Boot",
+ "lang_lastSeen": "Zuletzt gesehen",
+ "lang_logHeadline": "Logging",
+ "lang_macAddr": "MAC-Adresse",
+ "lang_machine": "Rechner",
+ "lang_machineCount": "Anzahl",
+ "lang_machineIdle": "Der Rechner ist eingeschaltet und wird zur Zeit nicht benutzt",
+ "lang_machineOccupied": "Der Rechner ist eingeschaltet und wird benutzt",
+ "lang_machineOccupiedBy": "In Verwendung durch",
+ "lang_machineOff": "Der Rechner ist ausgeschaltet, oder hat kein bwLehrpool gebootet",
+ "lang_machineSummary": "Zusammenfassung",
+ "lang_maximumAbbrev": "Max.",
+ "lang_memoryStats": "Arbeitsspeicher",
+ "lang_model": "Modell",
+ "lang_modelCount": "Anzahl",
+ "lang_modelName": "Modellname",
+ "lang_modelNo": "Modell",
+ "lang_modelStats": "PC-Modelle",
+ "lang_more": "Mehr",
+ "lang_newMachines": "Neue Ger\u00e4te",
+ "lang_notes": "Anmerkungen",
+ "lang_onlineMachines": "Gestartete Clients",
+ "lang_partName": "Name",
+ "lang_partSize": "Gr\u00f6\u00dfe",
+ "lang_partType": "Typ",
+ "lang_partitionSize": "Gr\u00f6\u00dfe",
+ "lang_pendingSectors": "Potentiell defekte Sektoren",
+ "lang_powerOnTime": "Betriebszeit",
+ "lang_ram": "Arbeitsspeicher",
+ "lang_ramSize": "Gr\u00f6\u00dfe",
+ "lang_ramSlots": "Speicher-Slots",
+ "lang_realCores": "Kerne",
+ "lang_reallocatedSectors": "Defekte Sektoren",
+ "lang_save": "Speichern",
+ "lang_serialNo": "Serien-Nr",
+ "lang_sockets": "Sockel",
+ "lang_tempPart": "Temp. Partition",
+ "lang_tempPartStats": "Tempor\u00e4re Partition",
+ "lang_timebarDesc": "Visuelle Darstellung der letzten Tage. Rote Abschnitte zeigen, wann der Rechner belegt war, gr\u00fcne, wann er nicht verwendet wurde, aber eingeschaltet war. Die leicht abgedunkelten Abschnitte markieren N\u00e4chte (22 bis 8 Uhr).",
+ "lang_tmpGb": "HDD-Temp",
+ "lang_total": "Gesamt",
+ "lang_usageDetails": "Nutzungsdetails",
+ "lang_usageState": "Zustand",
+ "lang_uuid": "UUID",
+ "lang_virtualCores": "Virtuelle Kerne",
+ "lang_when": "Wann",
+ "lang_withBadSectors": "Clients mit potentiell defekten Festplatten (mehr als 10 defekte Sektoren)"
+} \ No newline at end of file
diff --git a/modules-available/statistics/lang/de/templates/clientlist.json b/modules-available/statistics/lang/de/templates/clientlist.json
deleted file mode 100644
index a1022e69..00000000
--- a/modules-available/statistics/lang/de/templates/clientlist.json
+++ /dev/null
@@ -1,14 +0,0 @@
-{
- "lang_address": "Adresse",
- "lang_clientList": "Liste ausgew\u00e4hlter Rechner",
- "lang_cpuModel": "CPU",
- "lang_gbRam": "RAM",
- "lang_kvmSupport": "64\u2009Bit G\u00e4ste",
- "lang_lastSeen": "Zuletzt gesehen",
- "lang_machine": "Rechner",
- "lang_machineIdle": "Der Rechner ist eingeschaltet und wird zur Zeit nicht benutzt",
- "lang_machineOccupied": "Der Rechner ist eingeschaltet und wird benutzt",
- "lang_machineOff": "Der Rechner ist ausgeschaltet, oder hat kein bwLehrpool gebootet",
- "lang_realCores": "Kerne",
- "lang_tmpGb": "HDD-Temp"
-} \ No newline at end of file
diff --git a/modules-available/statistics/lang/de/templates/cpumodels.json b/modules-available/statistics/lang/de/templates/cpumodels.json
deleted file mode 100644
index 85cf517f..00000000
--- a/modules-available/statistics/lang/de/templates/cpumodels.json
+++ /dev/null
@@ -1,6 +0,0 @@
-{
- "lang_cpuCores": "CPU-Kerne",
- "lang_modelCount": "Anzahl",
- "lang_modelName": "Modellname",
- "lang_modelStats": "PC-Modelle"
-} \ No newline at end of file
diff --git a/modules-available/statistics/lang/de/templates/id44.json b/modules-available/statistics/lang/de/templates/id44.json
deleted file mode 100644
index e2660f20..00000000
--- a/modules-available/statistics/lang/de/templates/id44.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "lang_machineCount": "Anzahl",
- "lang_partitionSize": "Gr\u00f6\u00dfe",
- "lang_tempPartStats": "Tempor\u00e4re Partition"
-} \ No newline at end of file
diff --git a/modules-available/statistics/lang/de/templates/kvmstate.json b/modules-available/statistics/lang/de/templates/kvmstate.json
deleted file mode 100644
index 3e8f1a96..00000000
--- a/modules-available/statistics/lang/de/templates/kvmstate.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "lang_kvmState": "Status",
- "lang_kvmStats": "64\u2009Bit Gast-Support",
- "lang_machineCount": "Anzahl"
-} \ No newline at end of file
diff --git a/modules-available/statistics/lang/de/templates/machine-hdds.json b/modules-available/statistics/lang/de/templates/machine-hdds.json
deleted file mode 100644
index f2f26baf..00000000
--- a/modules-available/statistics/lang/de/templates/machine-hdds.json
+++ /dev/null
@@ -1,13 +0,0 @@
-{
- "lang_hdds": "Festplatten",
- "lang_hours": "Stunden",
- "lang_modelNo": "Modell",
- "lang_partName": "Name",
- "lang_partSize": "Gr\u00f6\u00dfe",
- "lang_partType": "Typ",
- "lang_pendingSectors": "Potentiell defekte Sektoren",
- "lang_powerOnTime": "Betriebszeit",
- "lang_reallocatedSectors": "Defekte Sektoren",
- "lang_serialNo": "Serien-Nr",
- "lang_total": "Gesamt"
-} \ No newline at end of file
diff --git a/modules-available/statistics/lang/de/templates/machine-main.json b/modules-available/statistics/lang/de/templates/machine-main.json
deleted file mode 100644
index 47c3e266..00000000
--- a/modules-available/statistics/lang/de/templates/machine-main.json
+++ /dev/null
@@ -1,26 +0,0 @@
-{
- "lang_64bitSupport": "64\u2009Bit Gast-Support",
- "lang_cores": "Kerne",
- "lang_cpuModel": "CPU-Modell",
- "lang_firstSeen": "Erste Aktivit\u00e4t",
- "lang_hardwareSummary": "Hardware",
- "lang_hostname": "Hostname",
- "lang_ip": "IP-Adresse",
- "lang_lastBoot": "Letzter Boot",
- "lang_lastSeen": "Letzte Aktivit\u00e4t",
- "lang_macAddr": "MAC-Adresse",
- "lang_machineIdle": "Eingeschaltet, ungenutzt",
- "lang_machineOccupied": "Eingeschaltet, in Verwendung",
- "lang_machineOccupiedBy": "In Verwendung durch",
- "lang_machineOff": "Kein bwLehrpool gestartet",
- "lang_machineSummary": "Zusammenfassung",
- "lang_maximumAbbrev": "Max.",
- "lang_model": "Modell",
- "lang_ram": "Arbeitsspeicher",
- "lang_ramSlots": "Speicher-Slots",
- "lang_sockets": "Sockel",
- "lang_tempPart": "Temp. Partition",
- "lang_usageState": "Zustand",
- "lang_uuid": "UUID",
- "lang_virtualCores": "Virtuelle Kerne"
-} \ No newline at end of file
diff --git a/modules-available/statistics/lang/de/templates/machine-notes.json b/modules-available/statistics/lang/de/templates/machine-notes.json
deleted file mode 100644
index f9df1b92..00000000
--- a/modules-available/statistics/lang/de/templates/machine-notes.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "lang_notes": "Anmerkungen",
- "lang_save": "Speichern"
-} \ No newline at end of file
diff --git a/modules-available/statistics/lang/de/templates/machine-usage.json b/modules-available/statistics/lang/de/templates/machine-usage.json
deleted file mode 100644
index e2c9a979..00000000
--- a/modules-available/statistics/lang/de/templates/machine-usage.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "lang_timebarDesc": "Visuelle Darstellung der letzten Tage. Rote Abschnitte zeigen, wann der Rechner belegt war, gr\u00fcne, wann er nicht verwendet wurde, aber eingeschaltet war. Die leicht abgedunkelten Abschnitte markieren N\u00e4chte (22 bis 8 Uhr).",
- "lang_usageDetails": "Nutzungsdetails"
-} \ No newline at end of file
diff --git a/modules-available/statistics/lang/de/templates/memory.json b/modules-available/statistics/lang/de/templates/memory.json
deleted file mode 100644
index b5fdac89..00000000
--- a/modules-available/statistics/lang/de/templates/memory.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "lang_machineCount": "Anzahl",
- "lang_memoryStats": "Arbeitsspeicher",
- "lang_ramSize": "Gr\u00f6\u00dfe"
-} \ No newline at end of file
diff --git a/modules-available/statistics/lang/de/templates/newclients.json b/modules-available/statistics/lang/de/templates/newclients.json
deleted file mode 100644
index f1353389..00000000
--- a/modules-available/statistics/lang/de/templates/newclients.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "lang_machine": "Client",
- "lang_newMachines": "Neue Ger\u00e4te"
-} \ No newline at end of file
diff --git a/modules-available/statistics/lang/de/templates/summary.json b/modules-available/statistics/lang/de/templates/summary.json
deleted file mode 100644
index 30189871..00000000
--- a/modules-available/statistics/lang/de/templates/summary.json
+++ /dev/null
@@ -1,6 +0,0 @@
-{
- "lang_inUseMachines": "In Verwendung",
- "lang_knownMachines": "Bekannte Clients",
- "lang_onlineMachines": "Gestartete Clients",
- "lang_withBadSectors": "Clients mit potentiell defekten Festplatten (mehr als 10 defekte Sektoren)"
-} \ No newline at end of file
diff --git a/modules-available/statistics/lang/de/templates/syslog.json b/modules-available/statistics/lang/de/templates/syslog.json
deleted file mode 100644
index 960de730..00000000
--- a/modules-available/statistics/lang/de/templates/syslog.json
+++ /dev/null
@@ -1,7 +0,0 @@
-{
- "lang_details": "Details",
- "lang_event": "Ereignis",
- "lang_logHeadline": "Logging",
- "lang_more": "Mehr",
- "lang_when": "Wann"
-} \ No newline at end of file
diff --git a/modules-available/statistics/lang/en/template-tags.json b/modules-available/statistics/lang/en/template-tags.json
new file mode 100644
index 00000000..5782cb88
--- /dev/null
+++ b/modules-available/statistics/lang/en/template-tags.json
@@ -0,0 +1,69 @@
+{
+ "lang_64bitSupport": "64\u2009Bit guest support",
+ "lang_address": "Address",
+ "lang_clientList": "List of selected machines",
+ "lang_cores": "Cores",
+ "lang_cpuCores": "CPU cores",
+ "lang_cpuModel": "CPU",
+ "lang_details": "Details",
+ "lang_event": "Event",
+ "lang_firstSeen": "First seen",
+ "lang_gbRam": "RAM",
+ "lang_hardwareSummary": "Hardware",
+ "lang_hdds": "Hard disk drives",
+ "lang_hostname": "Hostname",
+ "lang_hours": "hours",
+ "lang_inUseMachines": "In use",
+ "lang_ip": "IP address",
+ "lang_knownMachines": "Known clients",
+ "lang_kvmState": "State",
+ "lang_kvmStats": "64\u2009Bit guest support",
+ "lang_kvmSupport": "64\u2009Bit guests",
+ "lang_lastBoot": "Last boot",
+ "lang_lastSeen": "Last seen",
+ "lang_logHeadline": "Logging",
+ "lang_macAddr": "MAC address",
+ "lang_machine": "Machine",
+ "lang_machineCount": "Count",
+ "lang_machineIdle": "Machine is powered on and is not used",
+ "lang_machineOccupied": "Machine is powered on and in use",
+ "lang_machineOccupiedBy": "In use by",
+ "lang_machineOff": "Machine is powered down, or is not running bwLehrpool",
+ "lang_machineSummary": "Summary",
+ "lang_maximumAbbrev": "max.",
+ "lang_memoryStats": "Memory",
+ "lang_model": "Model",
+ "lang_modelCount": "Count",
+ "lang_modelName": "Model name",
+ "lang_modelNo": "Model",
+ "lang_modelStats": "PC models",
+ "lang_more": "More",
+ "lang_newMachines": "New machines",
+ "lang_notes": "Notes",
+ "lang_onlineMachines": "Online clients",
+ "lang_partName": "Name",
+ "lang_partSize": "Size",
+ "lang_partType": "Type",
+ "lang_partitionSize": "Size",
+ "lang_pendingSectors": "Sectors pending reallocation",
+ "lang_powerOnTime": "Power on time",
+ "lang_ram": "Memory",
+ "lang_ramSize": "Size",
+ "lang_ramSlots": "Memory slots",
+ "lang_realCores": "Cores",
+ "lang_reallocatedSectors": "Bad sectors",
+ "lang_save": "Save",
+ "lang_serialNo": "Serial no",
+ "lang_sockets": "Sockets",
+ "lang_tempPart": "Temp. partition",
+ "lang_tempPartStats": "Temporary partition",
+ "lang_timebarDesc": "Visual representation of the last few days. Red parts mark periods where the client was occupied, green parts where the client was idle. Dimmed parts mark nights (10pm to 8am).",
+ "lang_tmpGb": "HDD temp",
+ "lang_total": "Total",
+ "lang_usageDetails": "Detailed usage",
+ "lang_usageState": "State",
+ "lang_uuid": "UUID",
+ "lang_virtualCores": "Virtual cores",
+ "lang_when": "When",
+ "lang_withBadSectors": "Clients with potentially bad HDDs (more than 10 reallocated sectors)"
+} \ No newline at end of file
diff --git a/modules-available/statistics/lang/en/templates/clientlist.json b/modules-available/statistics/lang/en/templates/clientlist.json
deleted file mode 100644
index ae692154..00000000
--- a/modules-available/statistics/lang/en/templates/clientlist.json
+++ /dev/null
@@ -1,14 +0,0 @@
-{
- "lang_address": "Address",
- "lang_clientList": "List of selected machines",
- "lang_cpuModel": "CPU",
- "lang_gbRam": "RAM",
- "lang_kvmSupport": "64\u2009Bit guests",
- "lang_lastSeen": "Last seen",
- "lang_machine": "Machine",
- "lang_machineIdle": "Machine is powered on and is not used",
- "lang_machineOccupied": "Machine is powered on and in use",
- "lang_machineOff": "Machine is powered down, or is not running bwLehrpool",
- "lang_realCores": "Cores",
- "lang_tmpGb": "HDD temp"
-} \ No newline at end of file
diff --git a/modules-available/statistics/lang/en/templates/cpumodels.json b/modules-available/statistics/lang/en/templates/cpumodels.json
deleted file mode 100644
index 864933dd..00000000
--- a/modules-available/statistics/lang/en/templates/cpumodels.json
+++ /dev/null
@@ -1,6 +0,0 @@
-{
- "lang_cpuCores": "CPU cores",
- "lang_modelCount": "Count",
- "lang_modelName": "Model name",
- "lang_modelStats": "PC models"
-} \ No newline at end of file
diff --git a/modules-available/statistics/lang/en/templates/id44.json b/modules-available/statistics/lang/en/templates/id44.json
deleted file mode 100644
index 0d0081a8..00000000
--- a/modules-available/statistics/lang/en/templates/id44.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "lang_machineCount": "Count",
- "lang_partitionSize": "Size",
- "lang_tempPartStats": "Temporary partition"
-} \ No newline at end of file
diff --git a/modules-available/statistics/lang/en/templates/kvmstate.json b/modules-available/statistics/lang/en/templates/kvmstate.json
deleted file mode 100644
index b4846473..00000000
--- a/modules-available/statistics/lang/en/templates/kvmstate.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "lang_kvmState": "State",
- "lang_kvmStats": "64\u2009Bit guest support",
- "lang_machineCount": "Count"
-} \ No newline at end of file
diff --git a/modules-available/statistics/lang/en/templates/machine-hdds.json b/modules-available/statistics/lang/en/templates/machine-hdds.json
deleted file mode 100644
index 8ce6801d..00000000
--- a/modules-available/statistics/lang/en/templates/machine-hdds.json
+++ /dev/null
@@ -1,13 +0,0 @@
-{
- "lang_hdds": "Hard disk drives",
- "lang_hours": "hours",
- "lang_modelNo": "Model",
- "lang_partName": "Name",
- "lang_partSize": "Size",
- "lang_partType": "Type",
- "lang_pendingSectors": "Sectors pending reallocation",
- "lang_powerOnTime": "Power on time",
- "lang_reallocatedSectors": "Bad sectors",
- "lang_serialNo": "Serial no",
- "lang_total": "Total"
-} \ No newline at end of file
diff --git a/modules-available/statistics/lang/en/templates/machine-main.json b/modules-available/statistics/lang/en/templates/machine-main.json
deleted file mode 100644
index 1addd437..00000000
--- a/modules-available/statistics/lang/en/templates/machine-main.json
+++ /dev/null
@@ -1,26 +0,0 @@
-{
- "lang_64bitSupport": "64\u2009Bit guest support",
- "lang_cores": "Cores",
- "lang_cpuModel": "CPU model",
- "lang_firstSeen": "First seen",
- "lang_hardwareSummary": "Hardware",
- "lang_hostname": "Hostname",
- "lang_ip": "IP address",
- "lang_lastBoot": "Last boot",
- "lang_lastSeen": "Last activity",
- "lang_macAddr": "MAC address",
- "lang_machineIdle": "Powered on, unused",
- "lang_machineOccupied": "Powered on, in use",
- "lang_machineOccupiedBy": "In use by",
- "lang_machineOff": "bwLehrpool not running",
- "lang_machineSummary": "Summary",
- "lang_maximumAbbrev": "max.",
- "lang_model": "Model",
- "lang_ram": "Memory",
- "lang_ramSlots": "Memory slots",
- "lang_sockets": "Sockets",
- "lang_tempPart": "Temp. partition",
- "lang_usageState": "State",
- "lang_uuid": "UUID",
- "lang_virtualCores": "Virtual cores"
-} \ No newline at end of file
diff --git a/modules-available/statistics/lang/en/templates/machine-notes.json b/modules-available/statistics/lang/en/templates/machine-notes.json
deleted file mode 100644
index 7a13f28a..00000000
--- a/modules-available/statistics/lang/en/templates/machine-notes.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "lang_notes": "Notes",
- "lang_save": "Save"
-} \ No newline at end of file
diff --git a/modules-available/statistics/lang/en/templates/machine-usage.json b/modules-available/statistics/lang/en/templates/machine-usage.json
deleted file mode 100644
index 398996f6..00000000
--- a/modules-available/statistics/lang/en/templates/machine-usage.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "lang_timebarDesc": "Visual representation of the last few days. Red parts mark periods where the client was occupied, green parts where the client was idle. Dimmed parts mark nights (10pm to 8am).",
- "lang_usageDetails": "Detailed usage"
-} \ No newline at end of file
diff --git a/modules-available/statistics/lang/en/templates/memory.json b/modules-available/statistics/lang/en/templates/memory.json
deleted file mode 100644
index decdd021..00000000
--- a/modules-available/statistics/lang/en/templates/memory.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "lang_machineCount": "Count",
- "lang_memoryStats": "Memory",
- "lang_ramSize": "Size"
-} \ No newline at end of file
diff --git a/modules-available/statistics/lang/en/templates/newclients.json b/modules-available/statistics/lang/en/templates/newclients.json
deleted file mode 100644
index f7e55f3f..00000000
--- a/modules-available/statistics/lang/en/templates/newclients.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "lang_machine": "Client",
- "lang_newMachines": "New machines"
-} \ No newline at end of file
diff --git a/modules-available/statistics/lang/en/templates/summary.json b/modules-available/statistics/lang/en/templates/summary.json
deleted file mode 100644
index b57c290f..00000000
--- a/modules-available/statistics/lang/en/templates/summary.json
+++ /dev/null
@@ -1,6 +0,0 @@
-{
- "lang_inUseMachines": "In use",
- "lang_knownMachines": "Known clients",
- "lang_onlineMachines": "Online clients",
- "lang_withBadSectors": "Clients with potentially bad HDDs (more than 10 reallocated sectors)"
-} \ No newline at end of file
diff --git a/modules-available/statistics/lang/en/templates/syslog.json b/modules-available/statistics/lang/en/templates/syslog.json
deleted file mode 100644
index 6737ca68..00000000
--- a/modules-available/statistics/lang/en/templates/syslog.json
+++ /dev/null
@@ -1,7 +0,0 @@
-{
- "lang_details": "Details",
- "lang_event": "Event",
- "lang_logHeadline": "Logging",
- "lang_more": "More",
- "lang_when": "When"
-} \ No newline at end of file
diff --git a/modules-available/support/lang/en/module.json b/modules-available/support/lang/en/module.json
deleted file mode 100644
index c44dc44f..00000000
--- a/modules-available/support/lang/en/module.json
+++ /dev/null
@@ -1,3 +0,0 @@
-[
-
-] \ No newline at end of file
diff --git a/modules-available/support/lang/pt/module.json b/modules-available/support/lang/pt/module.json
index f82f6a04..4d07b39d 100644
--- a/modules-available/support/lang/pt/module.json
+++ b/modules-available/support/lang/pt/module.json
@@ -1,18 +1,3 @@
{
- "lang_content": "Conte\u00fado",
- "lang_content#1": "Ao clicar em cada uma pergunta, elas se expandem exibindo as respostas!",
- "lang_content#2": "As perguntas ser\u00e3o adicionadas conforme as d\u00favidas forem surgindo",
- "lang_content#3": "Se tiver uma d\u00favida que n\u00e3o est\u00e1 no FAQ, envie um e-mail clicando no bot\u00e3o abaixo ;)",
- "lang_faq": "FAQ",
- "lang_faq#1": "Este \u00e9 o FAQ",
- "lang_faq#2": "Por enquanto n\u00e3o h\u00e1 nada por aqui (\u30c4)_\/\u00af",
- "lang_faq#3": "Nem todas as perguntas estar\u00e3o aqui",
- "lang_fileInput": "Arquivo:",
- "lang_form": "Formul\u00e1rio",
- "lang_header": "Assunto",
- "lang_helpInput": "Voc\u00ea pode mandar uma foto\/arquivo que nos auxilie a entender o problema.",
- "lang_showall": "Clique aqui para mostrar todo o FAQ",
- "lang_submit": "Enviar",
- "lang_supIntro": "N\u00e3o encontrou o que queria no FAQ? Mande-nos um e-mail informando o problema",
"module_name": "Suporte"
} \ No newline at end of file
diff --git a/modules-available/support/lang/pt/template-tags.json b/modules-available/support/lang/pt/template-tags.json
new file mode 100644
index 00000000..8f7f28e7
--- /dev/null
+++ b/modules-available/support/lang/pt/template-tags.json
@@ -0,0 +1,17 @@
+{
+ "lang_content": "Conte\u00fado",
+ "lang_content#1": "Ao clicar em cada uma pergunta, elas se expandem exibindo as respostas!",
+ "lang_content#2": "As perguntas ser\u00e3o adicionadas conforme as d\u00favidas forem surgindo",
+ "lang_content#3": "Se tiver uma d\u00favida que n\u00e3o est\u00e1 no FAQ, envie um e-mail clicando no bot\u00e3o abaixo ;)",
+ "lang_faq": "FAQ",
+ "lang_faq#1": "Este \u00e9 o FAQ",
+ "lang_faq#2": "Por enquanto n\u00e3o h\u00e1 nada por aqui (\u30c4)_\/\u00af",
+ "lang_faq#3": "Nem todas as perguntas estar\u00e3o aqui",
+ "lang_fileInput": "Arquivo:",
+ "lang_form": "Formul\u00e1rio",
+ "lang_header": "Assunto",
+ "lang_helpInput": "Voc\u00ea pode mandar uma foto\/arquivo que nos auxilie a entender o problema.",
+ "lang_showall": "Clique aqui para mostrar todo o FAQ",
+ "lang_submit": "Enviar",
+ "lang_supIntro": "N\u00e3o encontrou o que queria no FAQ? Mande-nos um e-mail informando o problema"
+} \ No newline at end of file
diff --git a/modules-available/sysconfig/lang/de/template-tags.json b/modules-available/sysconfig/lang/de/template-tags.json
new file mode 100644
index 00000000..a0d88a92
--- /dev/null
+++ b/modules-available/sysconfig/lang/de/template-tags.json
@@ -0,0 +1,97 @@
+{
+ "lang_activate": "Aktivieren",
+ "lang_active": "Aktiv",
+ "lang_adStarted": "Der AD-Proxy wird nun konfiguriert und gestartet...",
+ "lang_adText1": "Zum Einrichten der Benutzerauthentifizierung \u00fcber ein Active Directory wird neben der Adresse des anzusprechenden Servers ein dedizierter Benutzer im AD ben\u00f6tigt, \u00fcber welchen das AD angesprochen wird. Der Benutzer sollte in der gleichen Dom\u00e4ne sein, wie die Benutzer, die sich sp\u00e4ter an den Arbeitsstationen anmelden werden. Ansonsten ist es notwendig, die Suchbasis anzugeben.",
+ "lang_adText2": "Dieser Benutzer ben\u00f6tigt keine besonderen Rechte, Sie k\u00f6nnen diesem Benutzer zur Sicherheit auch die Rechte zum Anmelden entziehen. Der Benutzer muss lediglich ausreichende Berechtigungen haben, um einen LDAP-Bind am AD durchzuf\u00fchren, und nach Benutzern zu suchen.",
+ "lang_adText3": "Normalerweise k\u00f6nnen Sie als Bind DN die Kurzform im Format dom\u00e4ne\\benutzer angeben. Wenn dies nicht funktioniert, m\u00fcssen Sie den DN des Benutzers ermitteln. Z.B. unter Eingabe des folgenden Befehls auf einem DC:",
+ "lang_adText4": "Nach Eingabe aller ben\u00f6tigten Daten wird im n\u00e4chsten Schritt \u00fcberpr\u00fcft, ob die Kommunikation mit dem AD m\u00f6glich ist.",
+ "lang_add": "Hinzuf\u00fcgen",
+ "lang_allowPass": "Login mit Passwort zulassen",
+ "lang_allowPassInfo": "Wenn aktiviert, l\u00e4sst der sshd Logins mit Benutzername\/Passwort-Kombination zu. Ansonsten werden nur Logins nach dem pubkey-Verfahren zugelassen.",
+ "lang_asteriskMandatory": "Mit (*) gekennzeichnete Felder sind Pflichtfelder",
+ "lang_availableModules": "Verf\u00fcgbare Konfigurationsmodule",
+ "lang_availableSystem": "Verf\u00fcgbare Systemkonfigurationen",
+ "lang_back": "Zur\u00fcck",
+ "lang_bindDN": "Bind DN",
+ "lang_branding": "Hier k\u00f6nnen Sie ihr Einrichtungslogo im SVG-Format hochladen. Das SVG-Format ist ein Vektorgrafikformat, was zum Skalieren vorteilhaft ist. Eine gute Quelle f\u00fcr SVG-Logos von Unis und Hochschulen ist ihr jeweiliger Wikipedia-Artikel.",
+ "lang_brandingInfo": "Unten sehen Sie zur Kontrolle noch einmal das ausgew\u00e4hlte Logo. Sollten Sie das Logo nicht sehen k\u00f6nnen, pr\u00fcfen Sie bitte, ob Sie ein valides SVG-Bild verwendet haben. Alternativ ist es m\u00f6glich, dass beim Verarbeiten des Bildes ein Fehler auftrat. Sie k\u00f6nnen daher das Modul trotzdem speichern und testen, ob das Logo im bwLehrpool-System angezeigt wird.",
+ "lang_browseForFile": "Durchsuchen",
+ "lang_checkFileContent": "Hier haben Sie die M\u00f6glichkeit, den Inhalt des Archivs noch einmal zu \u00fcberpr\u00fcfen.",
+ "lang_close": "Schlie\u00dfen",
+ "lang_computerLoad": "Bild von lokalem Rechner hochladen",
+ "lang_configuration": "Konfiguration",
+ "lang_configurationActive": "Konfiguration aktivieren",
+ "lang_configurationChoose": "Bitte w\u00e4hlen Sie, welche Module f\u00fcr diese Konfiguration verwendet werden sollen.",
+ "lang_configurationModuleNotFound": "Keine Konfigurationsmodule gefunden!",
+ "lang_configurationSuccess": "Die Konfiguration wurde erfolgreich erstellt.",
+ "lang_connectionWait": "\u00dcberpr\u00fcfe Verbindung, bitte warten",
+ "lang_continueAnyway": "Trotzdem weiter",
+ "lang_customCertificate": "Zur Validierung zus\u00e4tzlich erforderliche (Intermediate-)Zertifikate",
+ "lang_customModuleInfo1": "\u00dcber ein benutzerdefiniertes Modul ist es m\u00f6glich, beliebige Dateien zum Linux-Grundsystem, das auf den Clients gebootet wird, hinzuzuf\u00fcgen. Dazu kann ein Archiv mit einer Dateisystemstruktur hochgeladen werden, die in dieser Form 1:1 in das gebootete Linux extrahiert wird.",
+ "lang_customModuleInfo2": "Beispiel: Enth\u00e4lt das hochgeladene Archiv eine Datei etc\/beispiel.conf, so wird auf einem gebooteten Client diese Datei als \/etc\/beispiel.conf zu finden sein.",
+ "lang_delete": "L\u00f6schen",
+ "lang_deleteLong": "Modul oder Konfiguration l\u00f6schen.",
+ "lang_dnLookup": "Ermitteln der Bind-DN",
+ "lang_download": "Herunterladen",
+ "lang_downloadLong": "Dieses Modul \"so wie es ist\" herunterladen.",
+ "lang_edit": "Bearbeiten",
+ "lang_editLong": "Modul oder Konfiguration bearbeiten.",
+ "lang_generateModule": "Modul erzeugen",
+ "lang_helpHomeAttrHead": "Name des Home-Verzeichnis-Attributs",
+ "lang_helpHomeAttrText": "Hier k\u00f6nnen Sie alternativ zum fest vorgegebenem Template des Home-Verzeichnis Servers den Attributsnamen im Active Directory angeben, der diesen Pfad bereitstellt. Normalerweise ist dies \"homeDirectory\". Wird das Feld leer gelassen, versucht der Assistent, das Attribut selbstst\u00e4ndig zu ermitteln. Falls das Einbinden der Home-Verzeichnisse anschlie\u00dfend nicht funktioniert, \u00fcberpr\u00fcfen Sie bitte den Client-Log (Status->Client Log) und den LDAP-Proxy-Log (Status->Server Status).",
+ "lang_helpModuleConfiguration": "Konfigurationsmodule sind die Bausteine, aus denen eine Systemkonfiguration erstellt wird. Hier lassen sich sowohl generische Module durch einen Wizard anlegen, als auch komplett eigene Module erstellen (fortgeschritten, Linuxkenntnisse erforderlich).",
+ "lang_helpSystemConfiguration": "\u00dcber eine Systemkonfiguration wird die grundlegende Lokalisierung des bwLehrpool-Systems durchgef\u00fchrt. Dazu geh\u00f6ren Aspekte wie das Authentifizierungsverfahren f\u00fcr Benutzer (z.B. Active Directory, LDAP), Druckerkonfiguration, Home-Verzeichnisse, etc. Eine Systemkonfiguration setzt sich aus einem oder mehreren Konfigurationsmodulen zusammen, welche im angrenzenden Panel verwaltet werden k\u00f6nnen.",
+ "lang_homeAttr": "Home-Attribut",
+ "lang_homeAttributeExplanation": "Bitte w\u00e4hlen Sie das Attribut, welches das Home-Verzeichnis der User enth\u00e4lt.",
+ "lang_ldapStarted": "Der LDAP-Proxy wurde gestartet",
+ "lang_ldapText1": "Mit diesem Wizard k\u00f6nnen Sie Authentifizierung gegen einen LDAP-Server einrichten.",
+ "lang_ldapText2": "Zu diesem Zweck wird ein LDAP-Proxy auf dem Satelliten-Server gestartet. Dies bedeutet, dass der LDAP-Server von diesem Server aus erreichbar sein muss. Die Pool-PCs hingegen m\u00fcssen nicht direkt mit dem LDAP-Server kommunizieren k\u00f6nnen.",
+ "lang_legend": "Legende",
+ "lang_listenPort": "Listen port",
+ "lang_listenPortInfo": "Der Port, auf dem der sshd lauscht. Der offizielle Standard ist 22.",
+ "lang_moduleChoose": "Bitte w\u00e4hlen Sie aus, welche Art Konfigurationsmodul Sie erstellen m\u00f6chten.",
+ "lang_moduleConfiguration": "Konfigurationsmodule",
+ "lang_moduleName": "Modulname",
+ "lang_moduleTitle": "Titel",
+ "lang_name": "Name",
+ "lang_newConfiguration": "Neue Konfiguration",
+ "lang_newModule": "Neues Modul",
+ "lang_next": "Weiter",
+ "lang_noContent": "Kein Inhalt!",
+ "lang_noModuleOfType": "Kein Modul dieser Art vorhanden.",
+ "lang_noOpenPort": "Auf dem angegebenen Server wurde kein offener Port gefunden.",
+ "lang_noValidCert": "Der Server besitzt kein oder ein nicht valides Zertifikat.",
+ "lang_onProblemSearchBase": "Werden keine Benutzer gefunden, dann \u00fcberpr\u00fcfen Sie bitte die Suchbasis",
+ "lang_or": "oder",
+ "lang_password": "Passwort",
+ "lang_rebuild": "Neu generieren",
+ "lang_rebuildLong": "Modul oder Konfiguration neu generieren. Das entsprechende Modul bzw. Konfiguration ist aktuell und sollte nicht neu generiert werden m\u00fcssen.",
+ "lang_rebuildOutdatedLong": "Modul oder Konfiguration neu generieren. Das entsprechende Modul bzw. Konfiguration ist veraltet oder nicht vorhanden.",
+ "lang_restartWizard": "Wizard neu starten",
+ "lang_rootKey": "root pubkey (\u00f6ffentlicher Schl\u00fcssel)",
+ "lang_rootKeyInfo": "Tragen Sie hier den \u00f6ffentlichen Schl\u00fcssel eines Schl\u00fcsselpaars ein, mit dem Sie sich als root-Benutzer an den Clients anmelden wollen. Lassen Sie das Feld leer, um diese Funktion nicht zu verwenden.",
+ "lang_save": "Speichern",
+ "lang_searchBase": "Suchbasis",
+ "lang_selectFile": "Bitte w\u00e4hlen Sie ein Archiv",
+ "lang_selectHomeAttribute": "Home-Attribut",
+ "lang_selfSignedNote": "Das Zertifikat des Servers scheint selbst signiert zu sein. Wenn Sie fortfahren wird versucht, die Zertifikatskette vom Server abzufragen. Dies ist in den meisten F\u00e4llen erfolgreich, sollte aber nur getan werden wenn Sie wissen, dass das Zertifikat des Servers von einer unbekannten CA signiert wurde. Falls die Authentifizierung anschlie\u00dfend nicht funktioniert, \u00fcberpr\u00fcfen Sie die LDAP-Proxy Logs auf der Serverstatus-Seite.",
+ "lang_show": "Ansehen",
+ "lang_showLong": "Inhalt des Moduls anzeigen.",
+ "lang_skip": "Weiter",
+ "lang_ssl": "SSL",
+ "lang_sslDescription": "Die Verbindung zum AD-Server mit SSL sichern. (Die Verbindung zwischen Client und Proxy wird in jedem Fall mit SSL abgewickelt.)",
+ "lang_supportedFiles": "Unterst\u00fctzte Archivformate",
+ "lang_systemConfiguration": "Systemkonfiguration",
+ "lang_systemConfigurationAlert": "Bevor Sie eine Systemkonfiguration erstellen k\u00f6nnen, m\u00fcssen Sie zun\u00e4chst ein Konfigurationsmodul erzeugen.",
+ "lang_systemConfigurationNotFound": "Keine Systemkonfigurationen gefunden.Erstellen Sie eine neue Konfiguration aus den unten aufgef\u00fchrten Konfigurationsmodulen.",
+ "lang_title": "Titel",
+ "lang_to": "Zur",
+ "lang_toSystemConfiguration": "Zur Systemkonfiguration",
+ "lang_upload": "Hochladen",
+ "lang_urlLoad": "Bild von URL laden",
+ "lang_userDirectory": "Benutzerverzeichnis",
+ "lang_userDirectoryInfo1": "Optionale Angabe: Wenn die Clients f\u00fcr die Benutzer ein eigenes Verzeichnis (Homeverzeichnis, Benutzerverzeichnis) von einem Server einbinden sollen, geben Sie bitte hier das Format in UNC-Notation an, also z.B.",
+ "lang_userDirectoryInfo2": "%s ist dabei ein Platzhalter f\u00fcr den Login-Namen des Benutzers.",
+ "lang_userDirectoryInfo3": "Das Verzeichnis wird mit den gleichen Zugangsdaten eingebunden, die der Benutzer beim Login angibt. (D.h. kein Kerberos Support o.\u00e4.)"
+} \ No newline at end of file
diff --git a/modules-available/sysconfig/lang/de/templates/_page.json b/modules-available/sysconfig/lang/de/templates/_page.json
deleted file mode 100644
index 844a12ef..00000000
--- a/modules-available/sysconfig/lang/de/templates/_page.json
+++ /dev/null
@@ -1,28 +0,0 @@
-{
- "lang_activate": "Aktivieren",
- "lang_active": "Aktiv",
- "lang_availableModules": "Verf\u00fcgbare Konfigurationsmodule",
- "lang_availableSystem": "Verf\u00fcgbare Systemkonfigurationen",
- "lang_close": "Schlie\u00dfen",
- "lang_configurationModuleNotFound": "Keine Konfigurationsmodule gefunden!",
- "lang_delete": "L\u00f6schen",
- "lang_deleteLong": "Modul oder Konfiguration l\u00f6schen.",
- "lang_download": "Herunterladen",
- "lang_downloadLong": "Dieses Modul \"so wie es ist\" herunterladen.",
- "lang_edit": "Bearbeiten",
- "lang_editLong": "Modul oder Konfiguration bearbeiten.",
- "lang_helpModuleConfiguration": "Konfigurationsmodule sind die Bausteine, aus denen eine Systemkonfiguration erstellt wird. Hier lassen sich sowohl generische Module durch einen Wizard anlegen, als auch komplett eigene Module erstellen (fortgeschritten, Linuxkenntnisse erforderlich).",
- "lang_helpSystemConfiguration": "\u00dcber eine Systemkonfiguration wird die grundlegende Lokalisierung des bwLehrpool-Systems durchgef\u00fchrt. Dazu geh\u00f6ren Aspekte wie das Authentifizierungsverfahren f\u00fcr Benutzer (z.B. Active Directory, LDAP), Druckerkonfiguration, Home-Verzeichnisse, etc. Eine Systemkonfiguration setzt sich aus einem oder mehreren Konfigurationsmodulen zusammen, welche im angrenzenden Panel verwaltet werden k\u00f6nnen.",
- "lang_legend": "Legende",
- "lang_moduleConfiguration": "Konfigurationsmodule",
- "lang_newConfiguration": "Neue Konfiguration",
- "lang_newModule": "Neues Modul",
- "lang_rebuild": "Neu generieren",
- "lang_rebuildLong": "Modul oder Konfiguration neu generieren. Das entsprechende Modul bzw. Konfiguration ist aktuell und sollte nicht neu generiert werden m\u00fcssen.",
- "lang_rebuildOutdatedLong": "Modul oder Konfiguration neu generieren. Das entsprechende Modul bzw. Konfiguration ist veraltet oder nicht vorhanden.",
- "lang_show": "Ansehen",
- "lang_showLong": "Inhalt des Moduls anzeigen.",
- "lang_systemConfiguration": "Systemkonfiguration",
- "lang_systemConfigurationAlert": "Bevor Sie eine Systemkonfiguration erstellen k\u00f6nnen, m\u00fcssen Sie zun\u00e4chst ein Konfigurationsmodul erzeugen.",
- "lang_systemConfigurationNotFound": "Keine Systemkonfigurationen gefunden.Erstellen Sie eine neue Konfiguration aus den unten aufgef\u00fchrten Konfigurationsmodulen."
-} \ No newline at end of file
diff --git a/modules-available/sysconfig/lang/de/templates/ad-finish.json b/modules-available/sysconfig/lang/de/templates/ad-finish.json
deleted file mode 100644
index e91e98dc..00000000
--- a/modules-available/sysconfig/lang/de/templates/ad-finish.json
+++ /dev/null
@@ -1,7 +0,0 @@
-{
- "lang_adStarted": "Der AD-Proxy wird nun konfiguriert und gestartet...",
- "lang_generateModule": "Modul erzeugen",
- "lang_restartWizard": "Assistent neustarten",
- "lang_systemConfiguration": "Systemkonfiguration",
- "lang_to": "Zur"
-} \ No newline at end of file
diff --git a/modules-available/sysconfig/lang/de/templates/ad-selfsearch.json b/modules-available/sysconfig/lang/de/templates/ad-selfsearch.json
deleted file mode 100644
index 89a957ee..00000000
--- a/modules-available/sysconfig/lang/de/templates/ad-selfsearch.json
+++ /dev/null
@@ -1,10 +0,0 @@
-{
- "lang_back": "Zur\u00fcck",
- "lang_continueAnyway": "Trotzdem weiter",
- "lang_dnLookup": "Ermitteln der Bind-DN",
- "lang_homeAttributeExplanation": "Bitte w\u00e4hlen Sie das Attribut, welches das Home-Verzeichnis der User enth\u00e4lt.",
- "lang_next": "Weiter",
- "lang_onProblemSearchBase": "Bei Problemen versuchen Sie, die Bind-DN und Suchbasis manuell anzugeben",
- "lang_selectHomeAttribute": "Home-Attribut",
- "lang_skip": "\u00dcberspringen"
-} \ No newline at end of file
diff --git a/modules-available/sysconfig/lang/de/templates/ad-start.json b/modules-available/sysconfig/lang/de/templates/ad-start.json
deleted file mode 100644
index a85e133f..00000000
--- a/modules-available/sysconfig/lang/de/templates/ad-start.json
+++ /dev/null
@@ -1,23 +0,0 @@
-{
- "lang_adText1": "Zum Einrichten der Benutzerauthentifizierung \u00fcber ein Active Directory wird neben der Adresse des anzusprechenden Servers ein dedizierter Benutzer im AD ben\u00f6tigt, \u00fcber welchen das AD angesprochen wird. Der Benutzer sollte in der gleichen Dom\u00e4ne sein, wie die Benutzer, die sich sp\u00e4ter an den Arbeitsstationen anmelden werden. Ansonsten ist es notwendig, die Suchbasis anzugeben.",
- "lang_adText2": "Dieser Benutzer ben\u00f6tigt keine besonderen Rechte, Sie k\u00f6nnen diesem Benutzer zur Sicherheit auch die Rechte zum Anmelden entziehen. Der Benutzer muss lediglich ausreichende Berechtigungen haben, um einen LDAP-Bind am AD durchzuf\u00fchren, und nach Benutzern zu suchen.",
- "lang_adText3": "Normalerweise k\u00f6nnen Sie als Bind DN die Kurzform im Format dom\u00e4ne\\benutzer angeben. Wenn dies nicht funktioniert, m\u00fcssen Sie den DN des Benutzers ermitteln. Z.B. unter Eingabe des folgenden Befehls auf einem DC:",
- "lang_adText4": "Nach Eingabe aller ben\u00f6tigten Daten wird im n\u00e4chsten Schritt \u00fcberpr\u00fcft, ob die Kommunikation mit dem AD m\u00f6glich ist.",
- "lang_asteriskMandatory": "Mit (*) gekennzeichnete Felder sind Pflichtfelder",
- "lang_bindDN": "Bind DN",
- "lang_close": "Schlie\u00dfen",
- "lang_customCertificate": "Zur Validierung zus\u00e4tzlich erforderliche (Intermediate-)Zertifikate",
- "lang_helpHomeAttrHead": "Name des Home-Verzeichnis-Attributs",
- "lang_helpHomeAttrText": "Hier k\u00f6nnen Sie alternativ zum fest vorgegebenem Template des Home-Verzeichnis Servers den Attributsnamen im Active Directory angeben, der diesen Pfad bereitstellt. Normalerweise ist dies \"homeDirectory\". Wird das Feld leer gelassen, versucht der Assistent, das Attribut selbstst\u00e4ndig zu ermitteln. Falls das Einbinden der Home-Verzeichnisse anschlie\u00dfend nicht funktioniert, \u00fcberpr\u00fcfen Sie bitte den Client-Log (Status->Client Log) und den LDAP-Proxy-Log (Status->Server Status).",
- "lang_homeAttr": "Home-Attribut",
- "lang_moduleTitle": "Titel",
- "lang_next": "Weiter",
- "lang_password": "Passwort",
- "lang_searchBase": "Suchbasis",
- "lang_ssl": "SSL",
- "lang_sslDescription": "Die Verbindung zum AD-Server mit SSL sichern. (Die Verbindung zwischen Client und Proxy wird in jedem Fall mit SSL abgewickelt.)",
- "lang_userDirectory": "Benutzerverzeichnis",
- "lang_userDirectoryInfo1": "Optionale Angabe: Wenn die Clients f\u00fcr die Benutzer ein eigenes Verzeichnis (Homeverzeichnis, Benutzerverzeichnis) von einem Server einbinden sollen, geben Sie bitte hier das Format in UNC-Notation an, also z.B.",
- "lang_userDirectoryInfo2": "%s ist dabei ein Platzhalter f\u00fcr den Login-Namen des Benutzers.",
- "lang_userDirectoryInfo3": "Das Verzeichnis wird mit den gleichen Zugangsdaten eingebunden, die der Benutzer beim Login angibt. (D.h. kein Kerberos Support o.\u00e4.)"
-} \ No newline at end of file
diff --git a/modules-available/sysconfig/lang/de/templates/ad_ldap-checkconnection.json b/modules-available/sysconfig/lang/de/templates/ad_ldap-checkconnection.json
deleted file mode 100644
index 6bf31104..00000000
--- a/modules-available/sysconfig/lang/de/templates/ad_ldap-checkconnection.json
+++ /dev/null
@@ -1,8 +0,0 @@
-{
- "lang_back": "Zur\u00fcck",
- "lang_connectionWait": "Pr\u00fcfe Verbindung...",
- "lang_next": "Weiter",
- "lang_noOpenPort": "Auf dem angegebenen Server wurde kein offener Port gefunden.",
- "lang_noValidCert": "Der Server besitzt kein oder ein nicht valides Zertifikat.",
- "lang_selfSignedNote": "Das Zertifikat des Servers scheint selbst signiert zu sein. Wenn Sie fortfahren wird versucht, die Zertifikatskette vom Server abzufragen. Dies ist in den meisten F\u00e4llen erfolgreich, sollte aber nur getan werden wenn Sie wissen, dass das Zertifikat des Servers von einer unbekannten CA signiert wurde. Falls die Authentifizierung anschlie\u00dfend nicht funktioniert, \u00fcberpr\u00fcfen Sie die LDAP-Proxy Logs auf der Serverstatus-Seite."
-} \ No newline at end of file
diff --git a/modules-available/sysconfig/lang/de/templates/ad_ldap-checkcredentials.json b/modules-available/sysconfig/lang/de/templates/ad_ldap-checkcredentials.json
deleted file mode 100644
index f0ab6e15..00000000
--- a/modules-available/sysconfig/lang/de/templates/ad_ldap-checkcredentials.json
+++ /dev/null
@@ -1,6 +0,0 @@
-{
- "lang_back": "Zur\u00fcck",
- "lang_connectionWait": "Die Verbindung zum angegebenen AD-Server wird nun \u00fcberpr\u00fcft. Bitte haben Sie einen Moment Geduld.",
- "lang_onProblemSearchBase": "Falls dieser Schritt fehlschl\u00e4gt, und Sie keine Suchbasis angegeben haben, versuchen Sie es erneut unter expliziter Angabe einer Suchbasis.",
- "lang_skip": "\u00dcberspringen"
-} \ No newline at end of file
diff --git a/modules-available/sysconfig/lang/de/templates/branding-check.json b/modules-available/sysconfig/lang/de/templates/branding-check.json
deleted file mode 100644
index 740cc34f..00000000
--- a/modules-available/sysconfig/lang/de/templates/branding-check.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "lang_brandingInfo": "Unten sehen Sie zur Kontrolle noch einmal das ausgew\u00e4hlte Logo. Sollten Sie das Logo nicht sehen k\u00f6nnen, pr\u00fcfen Sie bitte, ob Sie ein valides SVG-Bild verwendet haben. Alternativ ist es m\u00f6glich, dass beim Verarbeiten des Bildes ein Fehler auftrat. Sie k\u00f6nnen daher das Modul trotzdem speichern und testen, ob das Logo im bwLehrpool-System angezeigt wird.",
- "lang_save": "Speichern",
- "lang_title": "Titel"
-} \ No newline at end of file
diff --git a/modules-available/sysconfig/lang/de/templates/branding-start.json b/modules-available/sysconfig/lang/de/templates/branding-start.json
deleted file mode 100644
index e85a51d0..00000000
--- a/modules-available/sysconfig/lang/de/templates/branding-start.json
+++ /dev/null
@@ -1,9 +0,0 @@
-{
- "lang_branding": "Hier k\u00f6nnen Sie ihr Einrichtungslogo im SVG-Format hochladen. Das SVG-Format ist ein Vektorgrafikformat, was zum Skalieren vorteilhaft ist. Eine gute Quelle f\u00fcr SVG-Logos von Unis und Hochschulen ist ihr jeweiliger Wikipedia-Artikel.",
- "lang_browseForFile": "Durchsuchen",
- "lang_computerLoad": "Bild von lokalem Rechner hochladen",
- "lang_or": "oder",
- "lang_selectFile": "Bitte w\u00e4hlen Sie eine Datei",
- "lang_upload": "Hochladen",
- "lang_urlLoad": "Bild von URL laden"
-} \ No newline at end of file
diff --git a/modules-available/sysconfig/lang/de/templates/cfg-finish.json b/modules-available/sysconfig/lang/de/templates/cfg-finish.json
deleted file mode 100644
index 86fb7a15..00000000
--- a/modules-available/sysconfig/lang/de/templates/cfg-finish.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "lang_configurationActive": "Konfiguration aktivieren",
- "lang_configurationSuccess": "Die Konfiguration wurde erfolgreich erstellt."
-} \ No newline at end of file
diff --git a/modules-available/sysconfig/lang/de/templates/cfg-start.json b/modules-available/sysconfig/lang/de/templates/cfg-start.json
deleted file mode 100644
index c22a96c3..00000000
--- a/modules-available/sysconfig/lang/de/templates/cfg-start.json
+++ /dev/null
@@ -1,7 +0,0 @@
-{
- "lang_configuration": "Konfiguration",
- "lang_configurationChoose": "Bitte w\u00e4hlen Sie, welche Module f\u00fcr diese Konfiguration verwendet werden sollen.",
- "lang_name": "Name",
- "lang_next": "Weiter",
- "lang_noModuleOfType": "Kein Modul dieser Art vorhanden."
-} \ No newline at end of file
diff --git a/modules-available/sysconfig/lang/de/templates/config-module-list.json b/modules-available/sysconfig/lang/de/templates/config-module-list.json
deleted file mode 100644
index f346a107..00000000
--- a/modules-available/sysconfig/lang/de/templates/config-module-list.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "lang_noContent": "Kein Inhalt!",
- "lang_show": "Ansehen"
-} \ No newline at end of file
diff --git a/modules-available/sysconfig/lang/de/templates/custom-filelist.json b/modules-available/sysconfig/lang/de/templates/custom-filelist.json
deleted file mode 100644
index 1a73a858..00000000
--- a/modules-available/sysconfig/lang/de/templates/custom-filelist.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "lang_back": "Zur\u00fcck"
-} \ No newline at end of file
diff --git a/modules-available/sysconfig/lang/de/templates/custom-fileselect.json b/modules-available/sysconfig/lang/de/templates/custom-fileselect.json
deleted file mode 100644
index 94085f65..00000000
--- a/modules-available/sysconfig/lang/de/templates/custom-fileselect.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "lang_checkFileContent": "Hier haben Sie die M\u00f6glichkeit, den Inhalt des Archivs noch einmal zu \u00fcberpr\u00fcfen.",
- "lang_moduleName": "Modulname",
- "lang_next": "Weiter"
-} \ No newline at end of file
diff --git a/modules-available/sysconfig/lang/de/templates/custom-upload.json b/modules-available/sysconfig/lang/de/templates/custom-upload.json
deleted file mode 100644
index f9c3a8ae..00000000
--- a/modules-available/sysconfig/lang/de/templates/custom-upload.json
+++ /dev/null
@@ -1,8 +0,0 @@
-{
- "lang_browseForFile": "Durchsuchen",
- "lang_customModuleInfo1": "\u00dcber ein benutzerdefiniertes Modul ist es m\u00f6glich, beliebige Dateien zum Linux-Grundsystem, das auf den Clients gebootet wird, hinzuzuf\u00fcgen. Dazu kann ein Archiv mit einer Dateisystemstruktur hochgeladen werden, die in dieser Form 1:1 in das gebootete Linux extrahiert wird.",
- "lang_customModuleInfo2": "Beispiel: Enth\u00e4lt das hochgeladene Archiv eine Datei etc\/beispiel.conf, so wird auf einem gebooteten Client diese Datei als \/etc\/beispiel.conf zu finden sein.",
- "lang_selectFile": "Bitte w\u00e4hlen Sie ein Archiv",
- "lang_supportedFiles": "Unterst\u00fctzte Archivformate",
- "lang_upload": "Hochladen"
-} \ No newline at end of file
diff --git a/modules-available/sysconfig/lang/de/templates/ldap-checkconnection.json b/modules-available/sysconfig/lang/de/templates/ldap-checkconnection.json
deleted file mode 100644
index 4f2e619e..00000000
--- a/modules-available/sysconfig/lang/de/templates/ldap-checkconnection.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "lang_back": "Zur\u00fcck",
- "lang_connectionWait": "\u00dcberpr\u00fcfe Verbindung, bitte warten",
- "lang_next": "Weiter"
-} \ No newline at end of file
diff --git a/modules-available/sysconfig/lang/de/templates/ldap-checkcredentials.json b/modules-available/sysconfig/lang/de/templates/ldap-checkcredentials.json
deleted file mode 100644
index c8dcc9cd..00000000
--- a/modules-available/sysconfig/lang/de/templates/ldap-checkcredentials.json
+++ /dev/null
@@ -1,6 +0,0 @@
-{
- "lang_back": "Zur\u00fcck",
- "lang_connectionWait": "\u00dcberpr\u00fcfe LDAP-Zugangsdaten",
- "lang_onProblemSearchBase": "Werden keine Benutzer gefunden, dann \u00fcberpr\u00fcfen Sie bitte die Suchbasis",
- "lang_skip": "Weiter"
-} \ No newline at end of file
diff --git a/modules-available/sysconfig/lang/de/templates/ldap-finish.json b/modules-available/sysconfig/lang/de/templates/ldap-finish.json
deleted file mode 100644
index 7387f3a0..00000000
--- a/modules-available/sysconfig/lang/de/templates/ldap-finish.json
+++ /dev/null
@@ -1,6 +0,0 @@
-{
- "lang_generateModule": "Modul erzeugen",
- "lang_ldapStarted": "Der LDAP-Proxy wurde gestartet",
- "lang_restartWizard": "Wizard neu starten",
- "lang_toSystemConfiguration": "Zur Systemkonfiguration"
-} \ No newline at end of file
diff --git a/modules-available/sysconfig/lang/de/templates/ldap-start.json b/modules-available/sysconfig/lang/de/templates/ldap-start.json
deleted file mode 100644
index df5b1c09..00000000
--- a/modules-available/sysconfig/lang/de/templates/ldap-start.json
+++ /dev/null
@@ -1,16 +0,0 @@
-{
- "lang_bindDN": "Bind DN",
- "lang_close": "Schlie\u00dfen",
- "lang_customCertificate": "Zur Validierung zus\u00e4tzlich erforderliche (Intermediate-)Zertifikate",
- "lang_ldapText1": "Mit diesem Wizard k\u00f6nnen Sie Authentifizierung gegen einen LDAP-Server einrichten.",
- "lang_ldapText2": "Zu diesem Zweck wird ein LDAP-Proxy auf dem Satelliten-Server gestartet. Dies bedeutet, dass der LDAP-Server von diesem Server aus erreichbar sein muss. Die Pool-PCs hingegen m\u00fcssen nicht direkt mit dem LDAP-Server kommunizieren k\u00f6nnen.",
- "lang_moduleTitle": "Modulname",
- "lang_next": "Weiter",
- "lang_password": "Passwort",
- "lang_searchBase": "Suchbasis (Search base)",
- "lang_ssl": "SSL",
- "lang_sslDescription": "Zum Verbinden mit dem LDAP-Server SSL verwenden. (Die Verbindung zwischen Client und Proxy wird in jedem Fall mit SSL abgewickelt.) Einige LDAP-Server verweigern die Authentifizierung, wenn SSL nicht genutzt wird.",
- "lang_userDirectory": "Home-Verzeichnis",
- "lang_userDirectoryInfo1": "UNC-Pfad zum Home-Verzeichnis der Nutzer, mit Platzhalter '%s' f\u00fcr den Benutzernamen.",
- "lang_userDirectoryInfo2": "Zur Zeit wird nur SMB\/CIFS unterst\u00fctzt."
-} \ No newline at end of file
diff --git a/modules-available/sysconfig/lang/de/templates/sshconfig-start.json b/modules-available/sysconfig/lang/de/templates/sshconfig-start.json
deleted file mode 100644
index ef9286d7..00000000
--- a/modules-available/sysconfig/lang/de/templates/sshconfig-start.json
+++ /dev/null
@@ -1,10 +0,0 @@
-{
- "lang_allowPass": "Login mit Passwort zulassen",
- "lang_allowPassInfo": "Wenn aktiviert, l\u00e4sst der sshd Logins mit Benutzername\/Passwort-Kombination zu. Ansonsten werden nur Logins nach dem pubkey-Verfahren zugelassen.",
- "lang_listenPort": "Listen port",
- "lang_listenPortInfo": "Der Port, auf dem der sshd lauscht. Der offizielle Standard ist 22.",
- "lang_moduleName": "Modulname",
- "lang_rootKey": "root pubkey (\u00f6ffentlicher Schl\u00fcssel)",
- "lang_rootKeyInfo": "Tragen Sie hier den \u00f6ffentlichen Schl\u00fcssel eines Schl\u00fcsselpaars ein, mit dem Sie sich als root-Benutzer an den Clients anmelden wollen. Lassen Sie das Feld leer, um diese Funktion nicht zu verwenden.",
- "lang_save": "Speichern"
-}
diff --git a/modules-available/sysconfig/lang/de/templates/start.json b/modules-available/sysconfig/lang/de/templates/start.json
deleted file mode 100644
index 37992831..00000000
--- a/modules-available/sysconfig/lang/de/templates/start.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "lang_add": "Hinzuf\u00fcgen",
- "lang_moduleChoose": "Bitte w\u00e4hlen Sie aus, welche Art Konfigurationsmodul Sie erstellen m\u00f6chten."
-} \ No newline at end of file
diff --git a/modules-available/sysconfig/lang/en/module.json b/modules-available/sysconfig/lang/en/module.json
index c872d62a..f6454e24 100644
--- a/modules-available/sysconfig/lang/en/module.json
+++ b/modules-available/sysconfig/lang/en/module.json
@@ -1,4 +1,3 @@
{
- "lang_delete": "Delete",
"module_name": "Modules"
} \ No newline at end of file
diff --git a/modules-available/sysconfig/lang/en/template-tags.json b/modules-available/sysconfig/lang/en/template-tags.json
new file mode 100644
index 00000000..f4ce7c4d
--- /dev/null
+++ b/modules-available/sysconfig/lang/en/template-tags.json
@@ -0,0 +1,113 @@
+{
+ "lang_activate": "Activate",
+ "lang_active": "Active",
+ "lang_adStarted": "The AD-proxy is now configured and started ...",
+ "lang_adText1": "To set up user authentication through Active Directory, a dedicated user is required in AD next to the address of the server, which is addressed by the AD.",
+ "lang_adText2": "This user does not need special rights, you can follow this user to evade security and the rights to log on. The user only needs to have sufficient permissions to perform an LDAP Bind on AD, and search for users.",
+ "lang_adText3": "Next the distinguished name of the user must be specified. You can determine this by dsquery command line program on a domain controller as the following call:",
+ "lang_adText4": "After entering all required data in the next step, it checks whether communication is possible with the AD.",
+ "lang_add": "Add",
+ "lang_allowPass": "Allow password login",
+ "lang_allowPassInfo": "When active, logins via username and password are allowed. Otherwise, only pubkey authentication is possible.",
+ "lang_asteriskMandatory": "Fields marked with (*) are mandatory",
+ "lang_availableModules": "Available Configuration Modules",
+ "lang_availableSystem": "Available System Configuration",
+ "lang_back": "Back",
+ "lang_bindDN": "Bind DN",
+ "lang_branding": "For best results, you should upload the logo in SVG format. SVG is a vector graphics format, which is advantageous for scaling. A good source for SVG logos of universities and colleges is their respective Wikipedia article.",
+ "lang_brandingInfo": "Below you can check the selected logo. If you can not see the logo, please check whether you have used a valid SVG image. Alternatively, it is possible that during processing of the image, an error occurred. Therefore, you can save the module anyway and test whether the logo is displayed in the bwLehrpool system.",
+ "lang_browseForFile": "Browse",
+ "lang_checkFileContent": "Here you have the possibility to check the contents of the archive again.",
+ "lang_close": "Close",
+ "lang_computerLoad": "Load image from local computer",
+ "lang_configuration": "Configuration",
+ "lang_configurationActive": "Enable configuration",
+ "lang_configurationChoose": "Please select which modules will be used for this configuration.",
+ "lang_configurationModuleNotFound": "Configuration module not found!",
+ "lang_configurationSuccess": "The configuration has been successfully created.",
+ "lang_connectionWait": "Checking connection, please wait",
+ "lang_continueAnyway": "Continue anyway",
+ "lang_customCertificate": "Additional (intermediate) certificates required for certificate validation",
+ "lang_customModuleInfo1": "About a custom module, it is possible to add arbitrary files to a Linux system that is booted clients. For this purpose, an archive can be uploaded using a file system structure that is extracted in this form 1:1 in the booted Linux.",
+ "lang_customModuleInfo2": "Example: If the uploaded archive is the file etc\/example.conf, this file will be located as \/etc\/example.conf to a booted client.",
+ "lang_delete": "Delete",
+ "lang_deleteLong": "Delete module or configuration.",
+ "lang_dnLookup": "Looking up bind dn",
+ "lang_download": "Download",
+ "lang_downloadLong": "Download module \"as is\".",
+ "lang_edit": "Edit",
+ "lang_editLong": "Edit module or configuration.",
+ "lang_folderRedirection": "Folder Redirection",
+ "lang_generateModule": "Generating module",
+ "lang_handlingNotes": "Here you can configure how network shares (like the user's home directory) are mapped inside the VM. Old Versions of bwLehrpool used the VMware Shared Folder technique, which could cause problems with certain file servers. The new \"native mode\" works much better, but on Windows guests, it requires that you (1) use an smb\/cifs file server (Windows Server, Linux with Samba) and (2) have openslx.exe setup to autorun in the VM (this is already configured for bwLehrpool templates). Native mode with fallback is experimental and known to cause temporary freezes with some VMs. Use with care. IMPORTANT: Pick a drive letter for the home directory that will be free in the Virtual Machines. Otherwise, a random letter will be assigned.",
+ "lang_helpHomeAttrHead": "Name of the home directory attribute",
+ "lang_helpHomeAttrText": "Here you can specify the name of the attribute on the Active Directory that contains the path of the home directory server. Usually this is \"homeDirectory\". If you leave this blank, the wiszard will try to determine the attribute name automatically. If home directories don't work, check the client log (Status->Client log) and the LDAP proxy log (Status->Server status).",
+ "lang_helpModuleConfiguration": "Configuration modules are the building blocks from which a system configuration is created. Here you can create both generic modules by a wizard, as well as create completely custom modules (advanced Linux knowledge required).",
+ "lang_helpSystemConfiguration": "The fundamental localization of the bwLehrpool system is done through a system configuration. These include aspects such as the authentication method for users (eg Active Directory, LDAP), printer configuration, home directories, etc. A system configuration is composed of one or more configuration modules, which can be managed in the panel next to this one.",
+ "lang_homeAttr": "Home attribute",
+ "lang_homeAttributeExplanation": "Please select the attribute which holds the user's home directory.",
+ "lang_homedirHandling": "(Home) directory handling",
+ "lang_ldapStarted": "The LDAP proxy has been launched",
+ "lang_ldapText1": "Here you can create a configuration module to authenticate agains an LDAP server",
+ "lang_ldapText2": "An LDAP-Proxy will be launched on this server. This means the LDAP-Server must be reachable from it. The client PCs in the labs however don't have to be able to talk to the LDAP server \u2013 they will use the proxy running on this server.",
+ "lang_legend": "Legend",
+ "lang_listenPort": "Listen port",
+ "lang_listenPortInfo": "Listen port for the sshd. Default is 22.",
+ "lang_mapModeNative": "Natively map inside the VM [openslx.exe]",
+ "lang_mapModeNativeFallback": "Natively map inside VM; fallback to VMware Shared Folders",
+ "lang_mapModeNone": "Don't map shares at all",
+ "lang_mapModeVmware": "VMware Shared Folders [VMwareTools]",
+ "lang_moduleChoose": "Please select which type of configuration module you want to create.",
+ "lang_moduleConfiguration": "Module Configuration",
+ "lang_moduleName": "Module Name",
+ "lang_moduleTitle": "Title",
+ "lang_name": "Name",
+ "lang_newConfiguration": "New Configuration",
+ "lang_newModule": "New Module",
+ "lang_next": "Next",
+ "lang_noContent": "No content!",
+ "lang_noModuleOfType": "No module of this type found.",
+ "lang_noOpenPort": "There is no open LDAP port on this server.",
+ "lang_noValidCert": "The server did not supply a certificate, or the certificate is invalid.",
+ "lang_onProblemSearchBase": "If no users are found, please check the search base",
+ "lang_or": "or",
+ "lang_password": "Password",
+ "lang_rebuild": "Rebuild",
+ "lang_rebuildLong": "Rebuild module or configuration.",
+ "lang_rebuildOutdatedLong": "Rebuild module or configuration. The module\/configuration is outdated or missing and should be regenerated.",
+ "lang_redirectionWarning": "WARNING: This feature is experimental. It remaps the selected folders after the VM booted (via openslx.exe) to the logged in user's home drive. This might cause problems with applications that start before the pathes are patched, as they will see the old unpatched settings. This also doesn't work fully on Windows 10. If you want to reliably remap these directories, it's recommended to change their locations in the VM before uploading it.",
+ "lang_restartWizard": "Restart wizard",
+ "lang_rootKey": "root pubkey",
+ "lang_rootKeyInfo": "Here you can add the public key of a keypair that you want to use for authentication as root-user. Leave this field blank to disable the feature.",
+ "lang_save": "Save",
+ "lang_searchBase": "Search Base",
+ "lang_selectFile": "Please select an archive",
+ "lang_selectHomeAttribute": "Home attribute",
+ "lang_selfSignedNote": "The certificate of this server cannot be verified using the builtin trust store. If you know that the server's certificate was signed by an unknown CA, you can try to proceed. The chain will then be extracted from the server, which should be successful in most cases. If the authentication module does not work afterwards, check the LDAP-proxy logs on the server status page.",
+ "lang_shareDesktop": "Desktop (Might hide shortcuts created by the tutor)",
+ "lang_shareDocuments": "My Documents",
+ "lang_shareDownloads": "Downloads",
+ "lang_shareHomeDrive": "Home drive letter (Windows)",
+ "lang_shareMapCreate": "Create folders on network share if they don't exist",
+ "lang_shareMedia": "My Music, Videos, Pictures",
+ "lang_shareOther": "Other (Saved Games, Contacts, Favorites, ...)",
+ "lang_shareRemapMode": "Mapping mode",
+ "lang_show": "Show",
+ "lang_showLong": "Show content of module.",
+ "lang_skip": "Next",
+ "lang_ssl": "SSL",
+ "lang_sslDescription": "Use SSL encryption to talk to AD server.",
+ "lang_supportedFiles": "Supported File Formats",
+ "lang_systemConfiguration": "System Configuration",
+ "lang_systemConfigurationAlert": "Before you can create a system configuration, you must first create a configuration module.",
+ "lang_systemConfigurationNotFound": "No system configurations found. Create a new configuration from the configuration modules listed below.",
+ "lang_title": "Title",
+ "lang_to": "To",
+ "lang_toSystemConfiguration": "Go to system configuration",
+ "lang_upload": "Upload",
+ "lang_urlLoad": "Load image from URL",
+ "lang_userDirectory": "User Directory",
+ "lang_userDirectoryInfo1": "Optional: If the clients should embed a separate directory (home directory, user directory) from a server for the user, please enter here the format in UNC notation, eg",
+ "lang_userDirectoryInfo2": "%s is a placeholder for the user's login name.",
+ "lang_userDirectoryInfo3": "The directory is loaded with the same credentials that the user specifies when login. (That is no Kerberos support, etc.)"
+} \ No newline at end of file
diff --git a/modules-available/sysconfig/lang/en/templates/_page.json b/modules-available/sysconfig/lang/en/templates/_page.json
deleted file mode 100644
index 6f139359..00000000
--- a/modules-available/sysconfig/lang/en/templates/_page.json
+++ /dev/null
@@ -1,28 +0,0 @@
-{
- "lang_activate": "Activate",
- "lang_active": "Active",
- "lang_availableModules": "Available Configuration Modules",
- "lang_availableSystem": "Available System Configuration",
- "lang_close": "Close",
- "lang_configurationModuleNotFound": "Configuration module not found!",
- "lang_delete": "Delete",
- "lang_deleteLong": "Delete module or configuration.",
- "lang_download": "Download",
- "lang_downloadLong": "Download module \"as is\".",
- "lang_edit": "Edit",
- "lang_editLong": "Edit module or configuration.",
- "lang_helpModuleConfiguration": "Configuration modules are the building blocks from which a system configuration is created. Here you can create both generic modules by a wizard, as well as create completely custom modules (advanced Linux knowledge required).",
- "lang_helpSystemConfiguration": "The fundamental localization of the bwLehrpool system is done through a system configuration. These include aspects such as the authentication method for users (eg Active Directory, LDAP), printer configuration, home directories, etc. A system configuration is composed of one or more configuration modules, which can be managed in the panel next to this one.",
- "lang_legend": "Legend",
- "lang_moduleConfiguration": "Module Configuration",
- "lang_newConfiguration": "New Configuration",
- "lang_newModule": "New Module",
- "lang_rebuild": "Rebuild",
- "lang_rebuildLong": "Rebuild module or configuration.",
- "lang_rebuildOutdatedLong": "Rebuild module or configuration. The module\/configuration is outdated or missing and should be regenerated.",
- "lang_show": "Show",
- "lang_showLong": "Show content of module.",
- "lang_systemConfiguration": "System Configuration",
- "lang_systemConfigurationAlert": "Before you can create a system configuration, you must first create a configuration module.",
- "lang_systemConfigurationNotFound": "No system configurations found. Create a new configuration from the configuration modules listed below."
-} \ No newline at end of file
diff --git a/modules-available/sysconfig/lang/en/templates/ad-finish.json b/modules-available/sysconfig/lang/en/templates/ad-finish.json
deleted file mode 100644
index 8f89046e..00000000
--- a/modules-available/sysconfig/lang/en/templates/ad-finish.json
+++ /dev/null
@@ -1,7 +0,0 @@
-{
- "lang_adStarted": "The AD-proxy is now configured and started ...",
- "lang_generateModule": "Generate Module",
- "lang_restartWizard": "Restart Wizard",
- "lang_systemConfiguration": "System Configuration",
- "lang_to": "To"
-} \ No newline at end of file
diff --git a/modules-available/sysconfig/lang/en/templates/ad-selfsearch.json b/modules-available/sysconfig/lang/en/templates/ad-selfsearch.json
deleted file mode 100644
index 70db0620..00000000
--- a/modules-available/sysconfig/lang/en/templates/ad-selfsearch.json
+++ /dev/null
@@ -1,10 +0,0 @@
-{
- "lang_back": "Back",
- "lang_continueAnyway": "Continue anyway",
- "lang_dnLookup": "Looking up bind dn",
- "lang_homeAttributeExplanation": "Please select the attribute which holds the user's home directory.",
- "lang_next": "Next",
- "lang_onProblemSearchBase": "On failure, try to pass the bind dn and search base manually",
- "lang_selectHomeAttribute": "Home attribute",
- "lang_skip": "Skip"
-} \ No newline at end of file
diff --git a/modules-available/sysconfig/lang/en/templates/ad-start.json b/modules-available/sysconfig/lang/en/templates/ad-start.json
deleted file mode 100644
index ff35fc03..00000000
--- a/modules-available/sysconfig/lang/en/templates/ad-start.json
+++ /dev/null
@@ -1,23 +0,0 @@
-{
- "lang_adText1": "To set up user authentication through Active Directory, a dedicated user is required in AD next to the address of the server, which is addressed by the AD.",
- "lang_adText2": "This user does not need special rights, you can follow this user to evade security and the rights to log on. The user only needs to have sufficient permissions to perform an LDAP Bind on AD, and search for users.",
- "lang_adText3": "Next the distinguished name of the user must be specified. You can determine this by dsquery command line program on a domain controller as the following call:",
- "lang_adText4": "After entering all required data in the next step, it checks whether communication is possible with the AD.",
- "lang_asteriskMandatory": "Fields marked with (*) are mandatory",
- "lang_bindDN": "Bind DN",
- "lang_close": "Close",
- "lang_customCertificate": "Additional (intermediate) certificates required for certificate validation",
- "lang_helpHomeAttrHead": "Name of the home directory attribute",
- "lang_helpHomeAttrText": "Here you can specify the name of the attribute on the Active Directory that contains the path of the home directory server. Usually this is \"homeDirectory\". If you leave this blank, the wiszard will try to determine the attribute name automatically. If home directories don't work, check the client log (Status->Client log) and the LDAP proxy log (Status->Server status).",
- "lang_homeAttr": "Home attribute",
- "lang_moduleTitle": "Title",
- "lang_next": "Next",
- "lang_password": "Password",
- "lang_searchBase": "Search Base",
- "lang_ssl": "SSL",
- "lang_sslDescription": "Use SSL encryption to talk to AD server.",
- "lang_userDirectory": "User Directory",
- "lang_userDirectoryInfo1": "Optional: If the clients should embed a separate directory (home directory, user directory) from a server for the user, please enter here the format in UNC notation, eg",
- "lang_userDirectoryInfo2": "%s is a placeholder for the user's login name.",
- "lang_userDirectoryInfo3": "The directory is loaded with the same credentials that the user specifies when login. (That is no Kerberos support, etc.)"
-} \ No newline at end of file
diff --git a/modules-available/sysconfig/lang/en/templates/ad_ldap-checkconnection.json b/modules-available/sysconfig/lang/en/templates/ad_ldap-checkconnection.json
deleted file mode 100644
index 6a924f8b..00000000
--- a/modules-available/sysconfig/lang/en/templates/ad_ldap-checkconnection.json
+++ /dev/null
@@ -1,8 +0,0 @@
-{
- "lang_back": "Back",
- "lang_connectionWait": "Checking connection...",
- "lang_next": "Next",
- "lang_noOpenPort": "There is no open LDAP port on this server.",
- "lang_noValidCert": "The server did not supply a certificate, or the certificate is invalid.",
- "lang_selfSignedNote": "The certificate of this server cannot be verified using the builtin trust store. If you know that the server's certificate was signed by an unknown CA, you can try to proceed. The chain will then be extracted from the server, which should be successful in most cases. If the authentication module does not work afterwards, check the LDAP-proxy logs on the server status page."
-} \ No newline at end of file
diff --git a/modules-available/sysconfig/lang/en/templates/ad_ldap-checkcredentials.json b/modules-available/sysconfig/lang/en/templates/ad_ldap-checkcredentials.json
deleted file mode 100644
index 2b83a231..00000000
--- a/modules-available/sysconfig/lang/en/templates/ad_ldap-checkcredentials.json
+++ /dev/null
@@ -1,6 +0,0 @@
-{
- "lang_back": "Back",
- "lang_connectionWait": "The connection to the specified AD server is now checked. Please wait a moment.",
- "lang_onProblemSearchBase": "If this step fails and you didn't supply a search base, try again with a valid one.",
- "lang_skip": "Skip"
-} \ No newline at end of file
diff --git a/modules-available/sysconfig/lang/en/templates/ad_ldap-homedir.json b/modules-available/sysconfig/lang/en/templates/ad_ldap-homedir.json
deleted file mode 100644
index 90d4a211..00000000
--- a/modules-available/sysconfig/lang/en/templates/ad_ldap-homedir.json
+++ /dev/null
@@ -1,18 +0,0 @@
-{
- "lang_folderRedirection": "Folder Redirection",
- "lang_handlingNotes": "Here you can configure how network shares (like the user's home directory) are mapped inside the VM. Old Versions of bwLehrpool used the VMware Shared Folder technique, which could cause problems with certain file servers. The new \"native mode\" works much better, but on Windows guests, it requires that you (1) use an smb\/cifs file server (Windows Server, Linux with Samba) and (2) have openslx.exe setup to autorun in the VM (this is already configured for bwLehrpool templates). Native mode with fallback is experimental and known to cause temporary freezes with some VMs. Use with care. IMPORTANT: Pick a drive letter for the home directory that will be free in the Virtual Machines. Otherwise, a random letter will be assigned.",
- "lang_homedirHandling": "(Home) directory handling",
- "lang_mapModeNative": "Natively map inside the VM [openslx.exe]",
- "lang_mapModeNativeFallback": "Natively map inside VM; fallback to VMware Shared Folders",
- "lang_mapModeNone": "Don't map shares at all",
- "lang_mapModeVmware": "VMware Shared Folders [VMwareTools]",
- "lang_redirectionWarning": "WARNING: This feature is experimental. It remaps the selected folders after the VM booted (via openslx.exe) to the logged in user's home drive. This might cause problems with applications that start before the pathes are patched, as they will see the old unpatched settings. This also doesn't work fully on Windows 10. If you want to reliably remap these directories, it's recommended to change their locations in the VM before uploading it.",
- "lang_shareDesktop": "Desktop (Might hide shortcuts created by the tutor)",
- "lang_shareDocuments": "My Documents",
- "lang_shareDownloads": "Downloads",
- "lang_shareHomeDrive": "Home drive letter (Windows)",
- "lang_shareMapCreate": "Create folders on network share if they don't exist",
- "lang_shareMedia": "My Music, Videos, Pictures",
- "lang_shareOther": "Other (Saved Games, Contacts, Favorites, ...)",
- "lang_shareRemapMode": "Mapping mode"
-} \ No newline at end of file
diff --git a/modules-available/sysconfig/lang/en/templates/branding-check.json b/modules-available/sysconfig/lang/en/templates/branding-check.json
deleted file mode 100644
index 6a481d8b..00000000
--- a/modules-available/sysconfig/lang/en/templates/branding-check.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "lang_brandingInfo": "Below you can check the selected logo. If you can not see the logo, please check whether you have used a valid SVG image. Alternatively, it is possible that during processing of the image, an error occurred. Therefore, you can save the module anyway and test whether the logo is displayed in the bwLehrpool system.",
- "lang_save": "Save",
- "lang_title": "Title"
-} \ No newline at end of file
diff --git a/modules-available/sysconfig/lang/en/templates/branding-start.json b/modules-available/sysconfig/lang/en/templates/branding-start.json
deleted file mode 100644
index 4423784d..00000000
--- a/modules-available/sysconfig/lang/en/templates/branding-start.json
+++ /dev/null
@@ -1,9 +0,0 @@
-{
- "lang_branding": "For best results, you should upload the logo in SVG format. SVG is a vector graphics format, which is advantageous for scaling. A good source for SVG logos of universities and colleges is their respective Wikipedia article.",
- "lang_browseForFile": "Browse",
- "lang_computerLoad": "Load image from local computer",
- "lang_or": "or",
- "lang_selectFile": "Please select a file",
- "lang_upload": "Upload",
- "lang_urlLoad": "Load image from URL"
-} \ No newline at end of file
diff --git a/modules-available/sysconfig/lang/en/templates/cfg-finish.json b/modules-available/sysconfig/lang/en/templates/cfg-finish.json
deleted file mode 100644
index b8729636..00000000
--- a/modules-available/sysconfig/lang/en/templates/cfg-finish.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "lang_configurationActive": "Enable configuration",
- "lang_configurationSuccess": "The configuration has been successfully created."
-} \ No newline at end of file
diff --git a/modules-available/sysconfig/lang/en/templates/cfg-start.json b/modules-available/sysconfig/lang/en/templates/cfg-start.json
deleted file mode 100644
index 9afc6ce3..00000000
--- a/modules-available/sysconfig/lang/en/templates/cfg-start.json
+++ /dev/null
@@ -1,6 +0,0 @@
-{
- "lang_configuration": "Configuration",
- "lang_configurationChoose": "Please select which modules will be used for this configuration.",
- "lang_name": "Name",
- "lang_noModuleOfType": "No module of this type found."
-}
diff --git a/modules-available/sysconfig/lang/en/templates/config-module-list.json b/modules-available/sysconfig/lang/en/templates/config-module-list.json
deleted file mode 100644
index ff30c0b4..00000000
--- a/modules-available/sysconfig/lang/en/templates/config-module-list.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "lang_noContent": "No content!",
- "lang_show": "Show"
-} \ No newline at end of file
diff --git a/modules-available/sysconfig/lang/en/templates/custom-filelist.json b/modules-available/sysconfig/lang/en/templates/custom-filelist.json
deleted file mode 100644
index 50bec5b5..00000000
--- a/modules-available/sysconfig/lang/en/templates/custom-filelist.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "lang_back": "Back"
-} \ No newline at end of file
diff --git a/modules-available/sysconfig/lang/en/templates/custom-fileselect.json b/modules-available/sysconfig/lang/en/templates/custom-fileselect.json
deleted file mode 100644
index 2ae25e16..00000000
--- a/modules-available/sysconfig/lang/en/templates/custom-fileselect.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "lang_checkFileContent": "Here you have the possibility to check the contents of the archive again.",
- "lang_moduleName": "Module Name",
- "lang_next": "Next"
-} \ No newline at end of file
diff --git a/modules-available/sysconfig/lang/en/templates/custom-upload.json b/modules-available/sysconfig/lang/en/templates/custom-upload.json
deleted file mode 100644
index 26b7c186..00000000
--- a/modules-available/sysconfig/lang/en/templates/custom-upload.json
+++ /dev/null
@@ -1,8 +0,0 @@
-{
- "lang_browseForFile": "Browse",
- "lang_customModuleInfo1": "About a custom module, it is possible to add arbitrary files to a Linux system that is booted clients. For this purpose, an archive can be uploaded using a file system structure that is extracted in this form 1:1 in the booted Linux.",
- "lang_customModuleInfo2": "Example: If the uploaded archive is the file etc\/example.conf, this file will be located as \/etc\/example.conf to a booted client.",
- "lang_selectFile": "Please select an archive",
- "lang_supportedFiles": "Supported File Formats",
- "lang_upload": "Upload"
-} \ No newline at end of file
diff --git a/modules-available/sysconfig/lang/en/templates/ldap-checkconnection.json b/modules-available/sysconfig/lang/en/templates/ldap-checkconnection.json
deleted file mode 100644
index 52fbae9e..00000000
--- a/modules-available/sysconfig/lang/en/templates/ldap-checkconnection.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "lang_back": "Back",
- "lang_connectionWait": "Checking connection, please wait",
- "lang_next": "Next"
-} \ No newline at end of file
diff --git a/modules-available/sysconfig/lang/en/templates/ldap-checkcredentials.json b/modules-available/sysconfig/lang/en/templates/ldap-checkcredentials.json
deleted file mode 100644
index 2a8723c9..00000000
--- a/modules-available/sysconfig/lang/en/templates/ldap-checkcredentials.json
+++ /dev/null
@@ -1,6 +0,0 @@
-{
- "lang_back": "Back",
- "lang_connectionWait": "Checking LDAP credentials",
- "lang_onProblemSearchBase": "If no users are found, please check the search base",
- "lang_skip": "Next"
-} \ No newline at end of file
diff --git a/modules-available/sysconfig/lang/en/templates/ldap-finish.json b/modules-available/sysconfig/lang/en/templates/ldap-finish.json
deleted file mode 100644
index bd15bafc..00000000
--- a/modules-available/sysconfig/lang/en/templates/ldap-finish.json
+++ /dev/null
@@ -1,6 +0,0 @@
-{
- "lang_generateModule": "Generating module",
- "lang_ldapStarted": "The LDAP proxy has been launched",
- "lang_restartWizard": "Restart wizard",
- "lang_toSystemConfiguration": "Go to system configuration"
-} \ No newline at end of file
diff --git a/modules-available/sysconfig/lang/en/templates/ldap-start.json b/modules-available/sysconfig/lang/en/templates/ldap-start.json
deleted file mode 100644
index 45ba19f1..00000000
--- a/modules-available/sysconfig/lang/en/templates/ldap-start.json
+++ /dev/null
@@ -1,16 +0,0 @@
-{
- "lang_bindDN": "Bind domain",
- "lang_close": "Close",
- "lang_customCertificate": "Additional (intermediate) certificates required for certificate validation",
- "lang_ldapText1": "Here you can create a configuration module to authenticate agains an LDAP server",
- "lang_ldapText2": "An LDAP-Proxy will be launched on this server. This means the LDAP-Server must be reachable from it. The client PCs in the labs however don't have to be able to talk to the LDAP server \u2013 they will use the proxy running on this server.",
- "lang_moduleTitle": "Module name",
- "lang_next": "Next",
- "lang_password": "Password",
- "lang_searchBase": "Search base",
- "lang_ssl": "SSL",
- "lang_sslDescription": "Use SSL to connect to the LDAP-Server. (The connection between clients and proxy uses SSL in either case.) Some LDAP servers require SSL for authenticating connections.",
- "lang_userDirectory": "Home-Directory",
- "lang_userDirectoryInfo1": "UNC-path to home directory of user. '%s' can be used as a placeholder for the account name.",
- "lang_userDirectoryInfo2": "Currently, only CIFS\/SMB is supported."
-} \ No newline at end of file
diff --git a/modules-available/sysconfig/lang/en/templates/sshconfig-start.json b/modules-available/sysconfig/lang/en/templates/sshconfig-start.json
deleted file mode 100644
index 1ce553cd..00000000
--- a/modules-available/sysconfig/lang/en/templates/sshconfig-start.json
+++ /dev/null
@@ -1,10 +0,0 @@
-{
- "lang_allowPass": "Allow password login",
- "lang_allowPassInfo": "When active, logins via username and password are allowed. Otherwise, only pubkey authentication is possible.",
- "lang_listenPort": "Listen port",
- "lang_listenPortInfo": "Listen port for the sshd. Default is 22.",
- "lang_moduleName": "Module name",
- "lang_rootKey": "root pubkey",
- "lang_rootKeyInfo": "Here you can add the public key of a keypair that you want to use for authentication as root-user. Leave this field blank to disable the feature.",
- "lang_save": "Save"
-} \ No newline at end of file
diff --git a/modules-available/sysconfig/lang/en/templates/start.json b/modules-available/sysconfig/lang/en/templates/start.json
deleted file mode 100644
index 4567d649..00000000
--- a/modules-available/sysconfig/lang/en/templates/start.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "lang_add": "Add",
- "lang_moduleChoose": "Please select which type of configuration module you want to create."
-} \ No newline at end of file
diff --git a/modules-available/sysconfig/lang/pt/module.json b/modules-available/sysconfig/lang/pt/module.json
index b2a9e60c..73bca0ec 100644
--- a/modules-available/sysconfig/lang/pt/module.json
+++ b/modules-available/sysconfig/lang/pt/module.json
@@ -1,38 +1,3 @@
{
- "lang_activate": "Ativar",
- "lang_active": "Ativo",
- "lang_adText1": "Para configurar a autentica\u00e7\u00e3o de usu\u00e1rio por meio do Active Directory, um usu\u00e1rio dedicado \u00e9 necess\u00e1rio no AD pr\u00f3ximo ao endere\u00e7o do servidor, que \u00e9 endere\u00e7ado pelo AD.",
- "lang_adText2": "Este usu\u00e1rio n\u00e3o precisa de direitos especiais, voc\u00ea pode seguir este usu\u00e1rio para escapar da seguran\u00e7a e dos direitos para fazer logon. O usu\u00e1rio s\u00f3 precisa ter permiss\u00f5es suficientes para executar a liga\u00e7\u00e3o LDAP no AD, e procurar por usu\u00e1rios.",
- "lang_adText3": "A seguir o nome distinto do usu\u00e1rio deve ser especificado. Voc\u00ea pode determinar isso pelo programa de linha de comando dsquery em um controlador de dom\u00ednio como a seguinte chamada:",
- "lang_adText4": "Depois de inserir todos os dados necess\u00e1rios na pr\u00f3xima etapa, ela verifica se a comunica\u00e7\u00e3o \u00e9 poss\u00edvel com o AD.",
- "lang_availableModules": "M\u00f3dulos de Configura\u00e7\u00e3o Dispon\u00edveis",
- "lang_availableSystem": "Configura\u00e7\u00f5es de Sistema Dispon\u00edveis",
- "lang_back": "Voltar",
- "lang_bindDN": "Vincular DN",
- "lang_close": "Fechar",
- "lang_configurationModuleNotFound": "M\u00f3dulo de configura\u00e7\u00e3o n\u00e3o encontrado!",
- "lang_delete": "Excluir",
- "lang_file": "Arquivo",
- "lang_helpModuleConfiguration": "M\u00f3dulos de configura\u00e7\u00e3o s\u00e3o as pe\u00e7as fundamentais para a cria\u00e7\u00e3o de uma configura\u00e7\u00e3o de sistema. Aqui voc\u00ea pode criar tanto m\u00f3dulos gen\u00e9ricos atrav\u00e9s de nossa interface, tanto quanto criar m\u00f3dulos completamente customizados (\u00e9 necess\u00e1rio conhecimento de Linux avan\u00e7ado).",
- "lang_helpSystemConfiguration": "A localiza\u00e7\u00e3o fundamental do sistema bwLehrpool \u00e9 feita atrav\u00e9s de uma configura\u00e7\u00e3o de sistema. Isso inclui aspectos como o m\u00e9todo de autentica\u00e7\u00e3o de usu\u00e1rios (por exemplo, Diret\u00f3rio Ativo, LDAP), configura\u00e7\u00e3o de impressora, diret\u00f3rios home, etc. Uma configura\u00e7\u00e3o de sistema \u00e9 composta por um ou mais m\u00f3dulo de configura\u00e7\u00e3o, que podem ser gerenciados na parte inferior da p\u00e1gina.",
- "lang_moduleConfiguration": "Configura\u00e7\u00e3o do M\u00f3dulo",
- "lang_moduleTitle": "T\u00edtulo",
- "lang_name": "Nome",
- "lang_new": "Novo",
- "lang_newConfiguration": "Nova Configura\u00e7\u00e3o",
- "lang_newModule": "Novo M\u00f3dulo",
- "lang_next": "Pr\u00f3ximo",
- "lang_noContent": "Sem conte\u00fado!",
- "lang_password": "Senha",
- "lang_save": "Salvar",
- "lang_searchBase": "Base de Pesquisa",
- "lang_show": "Mostrar",
- "lang_systemConfiguration": "Confgura\u00e7\u00e3o do Sistema",
- "lang_systemConfigurationAlert": "Antes de criar uma configura\u00e7\u00e3o de sistema, voc\u00ea deve criar primeiro um m\u00f3dulo de configura\u00e7\u00e3o.",
- "lang_systemConfigurationNotFound": "Nenhuma configura\u00e7\u00e3o de sistena encontrada. Crie uma nova configura\u00e7\u00e3o a partir dos m\u00f3dulos de configura\u00e7\u00e3o abaixo.",
- "lang_userDirectory": "Diret\u00f3rio de Usu\u00e1rio",
- "lang_userDirectoryInfo1": "Opcional: Se os clientes devem incorporar um diret\u00f3rio separado (diret\u00f3rio home, diret\u00f3rio de usu\u00e1rio) de um servidor para o usu\u00e1rio, digite aqui o formato em nota\u00e7\u00e3o UNC, por exemplo,",
- "lang_userDirectoryInfo2": "%s \u00e9 um marcador para o nome de login do usu\u00e1rio.",
- "lang_userDirectoryInfo3": "O diret\u00f3rio \u00e9 carregado com as mesmas credenciais que o usu\u00e1rio especifica quando entra. (Isto \u00e9, n\u00e3o h\u00e1 suporte Kerberos, etc)",
"module_name": "M\u00f3dulos"
} \ No newline at end of file
diff --git a/modules-available/sysconfig/lang/pt/template-tags.json b/modules-available/sysconfig/lang/pt/template-tags.json
new file mode 100644
index 00000000..ff8c37fa
--- /dev/null
+++ b/modules-available/sysconfig/lang/pt/template-tags.json
@@ -0,0 +1,37 @@
+{
+ "lang_activate": "Ativar",
+ "lang_active": "Ativo",
+ "lang_adText1": "Para configurar a autentica\u00e7\u00e3o de usu\u00e1rio por meio do Active Directory, um usu\u00e1rio dedicado \u00e9 necess\u00e1rio no AD pr\u00f3ximo ao endere\u00e7o do servidor, que \u00e9 endere\u00e7ado pelo AD.",
+ "lang_adText2": "Este usu\u00e1rio n\u00e3o precisa de direitos especiais, voc\u00ea pode seguir este usu\u00e1rio para escapar da seguran\u00e7a e dos direitos para fazer logon. O usu\u00e1rio s\u00f3 precisa ter permiss\u00f5es suficientes para executar a liga\u00e7\u00e3o LDAP no AD, e procurar por usu\u00e1rios.",
+ "lang_adText3": "A seguir o nome distinto do usu\u00e1rio deve ser especificado. Voc\u00ea pode determinar isso pelo programa de linha de comando dsquery em um controlador de dom\u00ednio como a seguinte chamada:",
+ "lang_adText4": "Depois de inserir todos os dados necess\u00e1rios na pr\u00f3xima etapa, ela verifica se a comunica\u00e7\u00e3o \u00e9 poss\u00edvel com o AD.",
+ "lang_availableModules": "M\u00f3dulos de Configura\u00e7\u00e3o Dispon\u00edveis",
+ "lang_availableSystem": "Configura\u00e7\u00f5es de Sistema Dispon\u00edveis",
+ "lang_back": "Voltar",
+ "lang_bindDN": "Vincular DN",
+ "lang_close": "Fechar",
+ "lang_configurationModuleNotFound": "M\u00f3dulo de configura\u00e7\u00e3o n\u00e3o encontrado!",
+ "lang_delete": "Excluir",
+ "lang_file": "Arquivo",
+ "lang_helpModuleConfiguration": "M\u00f3dulos de configura\u00e7\u00e3o s\u00e3o as pe\u00e7as fundamentais para a cria\u00e7\u00e3o de uma configura\u00e7\u00e3o de sistema. Aqui voc\u00ea pode criar tanto m\u00f3dulos gen\u00e9ricos atrav\u00e9s de nossa interface, tanto quanto criar m\u00f3dulos completamente customizados (\u00e9 necess\u00e1rio conhecimento de Linux avan\u00e7ado).",
+ "lang_helpSystemConfiguration": "A localiza\u00e7\u00e3o fundamental do sistema bwLehrpool \u00e9 feita atrav\u00e9s de uma configura\u00e7\u00e3o de sistema. Isso inclui aspectos como o m\u00e9todo de autentica\u00e7\u00e3o de usu\u00e1rios (por exemplo, Diret\u00f3rio Ativo, LDAP), configura\u00e7\u00e3o de impressora, diret\u00f3rios home, etc. Uma configura\u00e7\u00e3o de sistema \u00e9 composta por um ou mais m\u00f3dulo de configura\u00e7\u00e3o, que podem ser gerenciados na parte inferior da p\u00e1gina.",
+ "lang_moduleConfiguration": "Configura\u00e7\u00e3o do M\u00f3dulo",
+ "lang_moduleTitle": "T\u00edtulo",
+ "lang_name": "Nome",
+ "lang_new": "Novo",
+ "lang_newConfiguration": "Nova Configura\u00e7\u00e3o",
+ "lang_newModule": "Novo M\u00f3dulo",
+ "lang_next": "Pr\u00f3ximo",
+ "lang_noContent": "Sem conte\u00fado!",
+ "lang_password": "Senha",
+ "lang_save": "Salvar",
+ "lang_searchBase": "Base de Pesquisa",
+ "lang_show": "Mostrar",
+ "lang_systemConfiguration": "Confgura\u00e7\u00e3o do Sistema",
+ "lang_systemConfigurationAlert": "Antes de criar uma configura\u00e7\u00e3o de sistema, voc\u00ea deve criar primeiro um m\u00f3dulo de configura\u00e7\u00e3o.",
+ "lang_systemConfigurationNotFound": "Nenhuma configura\u00e7\u00e3o de sistena encontrada. Crie uma nova configura\u00e7\u00e3o a partir dos m\u00f3dulos de configura\u00e7\u00e3o abaixo.",
+ "lang_userDirectory": "Diret\u00f3rio de Usu\u00e1rio",
+ "lang_userDirectoryInfo1": "Opcional: Se os clientes devem incorporar um diret\u00f3rio separado (diret\u00f3rio home, diret\u00f3rio de usu\u00e1rio) de um servidor para o usu\u00e1rio, digite aqui o formato em nota\u00e7\u00e3o UNC, por exemplo,",
+ "lang_userDirectoryInfo2": "%s \u00e9 um marcador para o nome de login do usu\u00e1rio.",
+ "lang_userDirectoryInfo3": "O diret\u00f3rio \u00e9 carregado com as mesmas credenciais que o usu\u00e1rio especifica quando entra. (Isto \u00e9, n\u00e3o h\u00e1 suporte Kerberos, etc)"
+} \ No newline at end of file
diff --git a/modules-available/sysconfignew/lang/en/module.json b/modules-available/sysconfignew/lang/en/template-tags.json
index 3ec89616..3ec89616 100644
--- a/modules-available/sysconfignew/lang/en/module.json
+++ b/modules-available/sysconfignew/lang/en/template-tags.json
diff --git a/modules-available/sysconfignew/lang/pt/module.json b/modules-available/sysconfignew/lang/pt/template-tags.json
index af0d7ad7..af0d7ad7 100644
--- a/modules-available/sysconfignew/lang/pt/module.json
+++ b/modules-available/sysconfignew/lang/pt/template-tags.json
diff --git a/modules-available/syslog/lang/de/module.json b/modules-available/syslog/lang/de/module.json
index b9e8de49..969e2f68 100644
--- a/modules-available/syslog/lang/de/module.json
+++ b/modules-available/syslog/lang/de/module.json
@@ -1,4 +1,4 @@
{
- "module_name": "Client-Log",
- "page_title": "Lognachrichten gebooteter Clients"
-}
+ "module_name": "Client-Log",
+ "page_title": "Lognachrichten gebooteter Clients"
+} \ No newline at end of file
diff --git a/modules-available/syslog/lang/de/templates/page-syslog.json b/modules-available/syslog/lang/de/template-tags.json
index 49e94602..49e94602 100644
--- a/modules-available/syslog/lang/de/templates/page-syslog.json
+++ b/modules-available/syslog/lang/de/template-tags.json
diff --git a/modules-available/syslog/lang/en/module.json b/modules-available/syslog/lang/en/module.json
index 70107d9c..0fc536f3 100644
--- a/modules-available/syslog/lang/en/module.json
+++ b/modules-available/syslog/lang/en/module.json
@@ -1,11 +1,3 @@
{
- "lang_client": "Client",
- "lang_clientLog": "Client Log",
- "lang_details": "Details",
- "lang_event": "Event",
- "lang_filter": "Filter",
- "lang_go": "go",
- "lang_not": "no",
- "lang_when": "When",
"module_name": "Server Log"
} \ No newline at end of file
diff --git a/modules-available/syslog/lang/en/templates/page-syslog.json b/modules-available/syslog/lang/en/template-tags.json
index 71f61693..71f61693 100644
--- a/modules-available/syslog/lang/en/templates/page-syslog.json
+++ b/modules-available/syslog/lang/en/template-tags.json
diff --git a/modules-available/syslog/lang/pt/module.json b/modules-available/syslog/lang/pt/module.json
index 0f7c5356..8cc7f8e4 100644
--- a/modules-available/syslog/lang/pt/module.json
+++ b/modules-available/syslog/lang/pt/module.json
@@ -1,11 +1,3 @@
{
- "lang_client": "Cliente",
- "lang_clientLog": "Log dos Clientes",
- "lang_details": "Detalhes",
- "lang_event": "Evento",
- "lang_filter": "Filtro",
- "lang_go": "Ir",
- "lang_not": "n\u00e3o",
- "lang_when": "Quando",
"module_name": "Log do Servidor"
} \ No newline at end of file
diff --git a/modules-available/syslog/lang/pt/template-tags.json b/modules-available/syslog/lang/pt/template-tags.json
new file mode 100644
index 00000000..432c065d
--- /dev/null
+++ b/modules-available/syslog/lang/pt/template-tags.json
@@ -0,0 +1,10 @@
+{
+ "lang_client": "Cliente",
+ "lang_clientLog": "Log dos Clientes",
+ "lang_details": "Detalhes",
+ "lang_event": "Evento",
+ "lang_filter": "Filtro",
+ "lang_go": "Ir",
+ "lang_not": "n\u00e3o",
+ "lang_when": "Quando"
+} \ No newline at end of file
diff --git a/modules-available/systemstatus/lang/de/template-tags.json b/modules-available/systemstatus/lang/de/template-tags.json
new file mode 100644
index 00000000..04ee998b
--- /dev/null
+++ b/modules-available/systemstatus/lang/de/template-tags.json
@@ -0,0 +1,33 @@
+{
+ "lang_addressConfiguration": "Adresskonfiguration",
+ "lang_advanced": "Erweitert \/ Debug",
+ "lang_attention": "Achtung!",
+ "lang_average": "Durchschnitt",
+ "lang_capacity": "Kapazit\u00e4t",
+ "lang_cpuLoad": "CPU-Last",
+ "lang_dmsdLog": "dmsd Log",
+ "lang_foundStore": "Vorgefunden:",
+ "lang_free": "Frei",
+ "lang_goToStoreConf": "Zur VM-Store-Konfiguration wechseln",
+ "lang_iAmSure": "Ja, ich bin sicher",
+ "lang_ldadpLog": "AD\/LDAP-Proxy Log",
+ "lang_logicCPUs": "Logische CPUs",
+ "lang_maintenance": "Maintenance",
+ "lang_notDetermined": "Konnte nicht ermittelt werden",
+ "lang_occupied": "Belegt",
+ "lang_onlyOS": "Nur OS",
+ "lang_ramUsage": "RAM-Nutzung",
+ "lang_services": "Dienste",
+ "lang_space": "Speicherplatz",
+ "lang_storeMissingExpected": "VM-Store nicht eingebunden. Erwartet:",
+ "lang_storeNotConfigured": "Kein VM-Store konfiguriert!",
+ "lang_swapUsage": "swap-Nutzung",
+ "lang_swapWarning": "Es wird swap-Speicher genutzt. Dies kann ein Hinweis darauf sein, dass dem Satelliten-Server zu wenig physikalischer Speicher zur Verf\u00fcgung steht. Im Falle von Performance-Problemen oder Instabilit\u00e4t des Servers sollten Sie erw\u00e4gen, den Server mit mehr RAM auszustatten.",
+ "lang_system": "System",
+ "lang_systemPartition": "Systempartition",
+ "lang_systemStoreError": "Fehler beim Ermitteln des verf\u00fcgbaren Systemspeichers",
+ "lang_total": "Gesamt",
+ "lang_uptimeOS": "OS Uptime",
+ "lang_vmStore": "VM-Speicher",
+ "lang_vmStoreError": "Fehler beim Ermitteln des verf\u00fcgbaren Speicherplatzes am VM-Speicherort. Bitte \u00fcberpr\u00fcfen Sie die Konfiguration."
+} \ No newline at end of file
diff --git a/modules-available/systemstatus/lang/de/templates/_page.json b/modules-available/systemstatus/lang/de/templates/_page.json
deleted file mode 100644
index 9c97961a..00000000
--- a/modules-available/systemstatus/lang/de/templates/_page.json
+++ /dev/null
@@ -1,11 +0,0 @@
-{
- "lang_addressConfiguration": "Adresskonfiguration",
- "lang_advanced": "Erweitert \/ Debug",
- "lang_dmsdLog": "dmsd Log",
- "lang_iAmSure": "Ja, ich bin sicher",
- "lang_ldadpLog": "AD\/LDAP-Proxy Log",
- "lang_maintenance": "Maintenance",
- "lang_services": "Dienste",
- "lang_space": "Speicherplatz",
- "lang_system": "System"
-} \ No newline at end of file
diff --git a/modules-available/systemstatus/lang/de/templates/addresses.json b/modules-available/systemstatus/lang/de/templates/addresses.json
deleted file mode 100644
index 0967ef42..00000000
--- a/modules-available/systemstatus/lang/de/templates/addresses.json
+++ /dev/null
@@ -1 +0,0 @@
-{}
diff --git a/modules-available/systemstatus/lang/de/templates/diskstat.json b/modules-available/systemstatus/lang/de/templates/diskstat.json
deleted file mode 100644
index c44433ea..00000000
--- a/modules-available/systemstatus/lang/de/templates/diskstat.json
+++ /dev/null
@@ -1,12 +0,0 @@
-{
- "lang_capacity": "Kapazit\u00e4t",
- "lang_foundStore": "Vorgefunden:",
- "lang_free": "Frei",
- "lang_goToStoreConf": "Zur VM-Store-Konfiguration wechseln",
- "lang_storeMissingExpected": "VM-Store nicht eingebunden. Erwartet:",
- "lang_storeNotConfigured": "Kein VM-Store konfiguriert!",
- "lang_systemPartition": "Systempartition",
- "lang_systemStoreError": "Fehler beim Ermitteln des verf\u00fcgbaren Systemspeichers",
- "lang_vmStore": "VM-Speicher",
- "lang_vmStoreError": "Fehler beim Ermitteln des verf\u00fcgbaren Speicherplatzes am VM-Speicherort. Bitte \u00fcberpr\u00fcfen Sie die Konfiguration."
-} \ No newline at end of file
diff --git a/modules-available/systemstatus/lang/de/templates/services.json b/modules-available/systemstatus/lang/de/templates/services.json
deleted file mode 100644
index 0967ef42..00000000
--- a/modules-available/systemstatus/lang/de/templates/services.json
+++ /dev/null
@@ -1 +0,0 @@
-{}
diff --git a/modules-available/systemstatus/lang/de/templates/systeminfo.json b/modules-available/systemstatus/lang/de/templates/systeminfo.json
deleted file mode 100644
index cd4027f1..00000000
--- a/modules-available/systemstatus/lang/de/templates/systeminfo.json
+++ /dev/null
@@ -1,15 +0,0 @@
-{
- "lang_attention": "Achtung!",
- "lang_average": "Durchschnitt",
- "lang_cpuLoad": "CPU-Last",
- "lang_free": "Frei",
- "lang_logicCPUs": "Logische CPUs",
- "lang_notDetermined": "Konnte nicht ermittelt werden",
- "lang_occupied": "Belegt",
- "lang_onlyOS": "Nur OS",
- "lang_ramUsage": "RAM-Nutzung",
- "lang_swapUsage": "swap-Nutzung",
- "lang_swapWarning": "Es wird swap-Speicher genutzt. Dies kann ein Hinweis darauf sein, dass dem Satelliten-Server zu wenig physikalischer Speicher zur Verf\u00fcgung steht. Im Falle von Performance-Problemen oder Instabilit\u00e4t des Servers sollten Sie erw\u00e4gen, den Server mit mehr RAM auszustatten.",
- "lang_total": "Gesamt",
- "lang_uptimeOS": "OS Uptime"
-} \ No newline at end of file
diff --git a/modules-available/systemstatus/lang/en/template-tags.json b/modules-available/systemstatus/lang/en/template-tags.json
new file mode 100644
index 00000000..e756b256
--- /dev/null
+++ b/modules-available/systemstatus/lang/en/template-tags.json
@@ -0,0 +1,33 @@
+{
+ "lang_addressConfiguration": "Address Configuration",
+ "lang_advanced": "Advanced \/ Debug",
+ "lang_attention": "Attention!",
+ "lang_average": "Average",
+ "lang_capacity": "Capacity",
+ "lang_cpuLoad": "CPU Load",
+ "lang_dmsdLog": "dmsd log",
+ "lang_foundStore": "Found:",
+ "lang_free": "Free",
+ "lang_goToStoreConf": "Go to VM store configuration",
+ "lang_iAmSure": "Yes, I am sure",
+ "lang_ldadpLog": "AD\/LDAP proxy log",
+ "lang_logicCPUs": "Logic CPUs",
+ "lang_maintenance": "Maintenance",
+ "lang_notDetermined": "Could not be determined",
+ "lang_occupied": "Occupied",
+ "lang_onlyOS": "OS Only",
+ "lang_ramUsage": "RAM Usage",
+ "lang_services": "Services",
+ "lang_space": "Space",
+ "lang_storeMissingExpected": "VM store not mounted. Expected:",
+ "lang_storeNotConfigured": "No VM store configured!",
+ "lang_swapUsage": "swap Usage",
+ "lang_swapWarning": "Memory swap is being used. This may be an indication that the satellite server does not have enough physical memory available. In the case of performance problems or server instability you should consider equipping the server with more RAM.",
+ "lang_system": "System",
+ "lang_systemPartition": "System Partition",
+ "lang_systemStoreError": "Error querying available system storage",
+ "lang_total": "Total",
+ "lang_uptimeOS": "OS Uptime",
+ "lang_vmStore": "VM Store",
+ "lang_vmStoreError": "Error determining available space of the VM storage. Please check the configuration."
+} \ No newline at end of file
diff --git a/modules-available/systemstatus/lang/en/templates/_page.json b/modules-available/systemstatus/lang/en/templates/_page.json
deleted file mode 100644
index f698521d..00000000
--- a/modules-available/systemstatus/lang/en/templates/_page.json
+++ /dev/null
@@ -1,11 +0,0 @@
-{
- "lang_addressConfiguration": "Address Configuration",
- "lang_advanced": "Advanced \/ Debug",
- "lang_dmsdLog": "dmsd log",
- "lang_iAmSure": "Yes, I am sure",
- "lang_ldadpLog": "AD\/LDAP proxy log",
- "lang_maintenance": "Maintenance",
- "lang_services": "Services",
- "lang_space": "Space",
- "lang_system": "System"
-} \ No newline at end of file
diff --git a/modules-available/systemstatus/lang/en/templates/addresses.json b/modules-available/systemstatus/lang/en/templates/addresses.json
deleted file mode 100644
index 2c63c085..00000000
--- a/modules-available/systemstatus/lang/en/templates/addresses.json
+++ /dev/null
@@ -1,2 +0,0 @@
-{
-}
diff --git a/modules-available/systemstatus/lang/en/templates/diskstat.json b/modules-available/systemstatus/lang/en/templates/diskstat.json
deleted file mode 100644
index 6c880ebe..00000000
--- a/modules-available/systemstatus/lang/en/templates/diskstat.json
+++ /dev/null
@@ -1,12 +0,0 @@
-{
- "lang_capacity": "Capacity",
- "lang_foundStore": "Found:",
- "lang_free": "Free",
- "lang_goToStoreConf": "Go to VM store configuration",
- "lang_storeMissingExpected": "VM store not mounted. Expected:",
- "lang_storeNotConfigured": "No VM store configured!",
- "lang_systemPartition": "System Partition",
- "lang_systemStoreError": "Error querying available system storage",
- "lang_vmStore": "VM Store",
- "lang_vmStoreError": "Error determining available space of the VM storage. Please check the configuration."
-} \ No newline at end of file
diff --git a/modules-available/systemstatus/lang/en/templates/services.json b/modules-available/systemstatus/lang/en/templates/services.json
deleted file mode 100644
index 2c63c085..00000000
--- a/modules-available/systemstatus/lang/en/templates/services.json
+++ /dev/null
@@ -1,2 +0,0 @@
-{
-}
diff --git a/modules-available/systemstatus/lang/en/templates/systeminfo.json b/modules-available/systemstatus/lang/en/templates/systeminfo.json
deleted file mode 100644
index 602693f5..00000000
--- a/modules-available/systemstatus/lang/en/templates/systeminfo.json
+++ /dev/null
@@ -1,15 +0,0 @@
-{
- "lang_attention": "Attention!",
- "lang_average": "Average",
- "lang_cpuLoad": "CPU Load",
- "lang_free": "Free",
- "lang_logicCPUs": "Logic CPUs",
- "lang_notDetermined": "Could not be determined",
- "lang_occupied": "Occupied",
- "lang_onlyOS": "OS Only",
- "lang_ramUsage": "RAM Usage",
- "lang_swapUsage": "swap Usage",
- "lang_swapWarning": "Memory swap is being used. This may be an indication that the satellite server does not have enough physical memory available. In the case of performance problems or server instability you should consider equipping the server with more RAM.",
- "lang_total": "Total",
- "lang_uptimeOS": "OS Uptime"
-} \ No newline at end of file
diff --git a/modules-available/systemstatus/lang/pt/module.json b/modules-available/systemstatus/lang/pt/module.json
index c191bcfd..1081a930 100644
--- a/modules-available/systemstatus/lang/pt/module.json
+++ b/modules-available/systemstatus/lang/pt/module.json
@@ -1,26 +1,3 @@
{
- "lang_addressConfiguration": "Configura\u00e7\u00e3o do Endere\u00e7o",
- "lang_attention": "Aten\u00e7\u00e3o!",
- "lang_average": "M\u00e9dia",
- "lang_capacity": "Capacidade",
- "lang_cpuLoad": "Carga da CPU",
- "lang_free": "Livre",
- "lang_iAmSure": "Sim, eu tenho certeza",
- "lang_logicCPUs": "CPUs L\u00f3gicas",
- "lang_maintenance": "Manuten\u00e7\u00e3o",
- "lang_notDetermined": "N\u00e3o foi poss\u00edvel determinar",
- "lang_occupied": "Ocupado",
- "lang_onlyOS": "Apenas SO",
- "lang_ramUsage": "Uso da RAM",
- "lang_services": "Servi\u00e7os",
- "lang_space": "Espa\u00e7o",
- "lang_swapUsage": "Uso do swap",
- "lang_swapWarning": "Swap de mem\u00f3ria est\u00e1 sendo usado. Isso pode ser uma indica\u00e7\u00e3o de que o servidor de sat\u00e9lite n\u00e3o tem mem\u00f3ria f\u00edsica suficiente dispon\u00edvel. No caso de problemas de desempenho ou instabilidade do servidor voc\u00ea deve considerar equipar o servidor com mais mem\u00f3ria RAM.",
- "lang_system": "Sistema",
- "lang_systemPartition": "Parti\u00e7\u00e3o do Sistema",
- "lang_total": "Total",
- "lang_uptimeOS": "Tempo de Atividade do SO",
- "lang_vmStore": "Armazenamento da VM",
- "lang_vmStoreError": "Erro ao determinar o espa\u00e7o em disco dispon\u00edvel no local da VM. Por favor, verifique a configura\u00e7\u00e3o.",
"module_name": "Servidor"
} \ No newline at end of file
diff --git a/modules-available/systemstatus/lang/pt/template-tags.json b/modules-available/systemstatus/lang/pt/template-tags.json
new file mode 100644
index 00000000..24f9560e
--- /dev/null
+++ b/modules-available/systemstatus/lang/pt/template-tags.json
@@ -0,0 +1,25 @@
+{
+ "lang_addressConfiguration": "Configura\u00e7\u00e3o do Endere\u00e7o",
+ "lang_attention": "Aten\u00e7\u00e3o!",
+ "lang_average": "M\u00e9dia",
+ "lang_capacity": "Capacidade",
+ "lang_cpuLoad": "Carga da CPU",
+ "lang_free": "Livre",
+ "lang_iAmSure": "Sim, eu tenho certeza",
+ "lang_logicCPUs": "CPUs L\u00f3gicas",
+ "lang_maintenance": "Manuten\u00e7\u00e3o",
+ "lang_notDetermined": "N\u00e3o foi poss\u00edvel determinar",
+ "lang_occupied": "Ocupado",
+ "lang_onlyOS": "Apenas SO",
+ "lang_ramUsage": "Uso da RAM",
+ "lang_services": "Servi\u00e7os",
+ "lang_space": "Espa\u00e7o",
+ "lang_swapUsage": "Uso do swap",
+ "lang_swapWarning": "Swap de mem\u00f3ria est\u00e1 sendo usado. Isso pode ser uma indica\u00e7\u00e3o de que o servidor de sat\u00e9lite n\u00e3o tem mem\u00f3ria f\u00edsica suficiente dispon\u00edvel. No caso de problemas de desempenho ou instabilidade do servidor voc\u00ea deve considerar equipar o servidor com mais mem\u00f3ria RAM.",
+ "lang_system": "Sistema",
+ "lang_systemPartition": "Parti\u00e7\u00e3o do Sistema",
+ "lang_total": "Total",
+ "lang_uptimeOS": "Tempo de Atividade do SO",
+ "lang_vmStore": "Armazenamento da VM",
+ "lang_vmStoreError": "Erro ao determinar o espa\u00e7o em disco dispon\u00edvel no local da VM. Por favor, verifique a configura\u00e7\u00e3o."
+} \ No newline at end of file
diff --git a/modules-available/translation/lang/de/template-tags.json b/modules-available/translation/lang/de/template-tags.json
new file mode 100644
index 00000000..60af942b
--- /dev/null
+++ b/modules-available/translation/lang/de/template-tags.json
@@ -0,0 +1,20 @@
+{
+ "lang_adminInfo": "Dies ist eine Liste aller Templates. Die \"Status\"-Spalte zeigt an, wenn f\u00fcr ein Template \u00fcbersetzungen fehlen, oder veraltete Tags definiert sind.",
+ "lang_back": "Z\u00fcruck",
+ "lang_createTag": "TAG schafen",
+ "lang_deleteTAG": "L\u00f6schen",
+ "lang_editConfigModule": "Konfigurationsmodulbezeichnungsphrasen editieren",
+ "lang_editHardcoded": "Hardcoded-Texte bearbeiten",
+ "lang_editMessages": "Nachrichten bearbeiten",
+ "lang_editSettings": "Einstellungstexte bearbeiten",
+ "lang_editTemplates": "Template-Texte bearbeiten",
+ "lang_englishTAG": "Englisch TAG",
+ "lang_germanTAG": "Deutsch TAG",
+ "lang_langAdministration": "Templates",
+ "lang_newTAG": "Neue Tag",
+ "lang_portugueseTAG": "Portugiesisch TAG",
+ "lang_save": "Speichern",
+ "lang_status": "Status",
+ "lang_templateAdminHelp": "Hier k\u00f6nnen Sie die verwendeten Texte und S\u00e4tze \u00fcbersetzen.",
+ "lang_templateHint": "Hinweis: Gelbe Linie zeigt eine \u00dcbersetzung fehlt und roten Linien zeigen ein Tag wird nicht von das Template verwendet."
+} \ No newline at end of file
diff --git a/modules-available/translation/lang/de/templates/_page.json b/modules-available/translation/lang/de/templates/_page.json
deleted file mode 100644
index 639697de..00000000
--- a/modules-available/translation/lang/de/templates/_page.json
+++ /dev/null
@@ -1,9 +0,0 @@
-{
- "lang_adminInfo": "In diesem Abschnitt k\u00f6nnen Sie die JSON-Tags, die \u00fcbersetzten Texte durch die Website verwendet wird, enth\u00e4lt zu \u00e4ndern. Um dies zu tun, w\u00e4hlen Sie eine Vorlage aus, um ihre jeweiligen Tags \u00e4ndern. Alternativ klicken Sie auf den Link unten, um die Nachrichten der Website \u00e4ndern.",
- "lang_editConfigModule": "Konfigurationsmodulbezeichnungsphrasen editieren",
- "lang_editHardcoded": "Hardcoded-Texte bearbeiten",
- "lang_editMessages": "Nachrichten bearbeiten",
- "lang_editSettings": "Einstellungstexte bearbeiten",
- "lang_editTemplates": "Template-Texte bearbeiten",
- "lang_langAdministration": "Sprache Verwaltung"
-} \ No newline at end of file
diff --git a/modules-available/translation/lang/de/templates/edit.json b/modules-available/translation/lang/de/templates/edit.json
deleted file mode 100644
index 671e51d8..00000000
--- a/modules-available/translation/lang/de/templates/edit.json
+++ /dev/null
@@ -1,12 +0,0 @@
-{
- "lang_back": "Z\u00fcruck",
- "lang_createTag": "TAG schafen",
- "lang_deleteTAG": "L\u00f6schen",
- "lang_englishTAG": "Englisch TAG",
- "lang_germanTAG": "Deutsch TAG",
- "lang_newTAG": "Neue Tag",
- "lang_portugueseTAG": "Portugiesisch TAG",
- "lang_save": "Speichern",
- "lang_templateAdminHelp": "Hier k\u00f6nnen Sie die verwendeten Texte und S\u00e4tze \u00fcbersetzen.",
- "lang_templateHint": "Hinweis: Gelbe Linie zeigt eine \u00dcbersetzung fehlt und roten Linien zeigen ein Tag wird nicht von das Template verwendet."
-} \ No newline at end of file
diff --git a/modules-available/translation/lang/de/templates/template-list.json b/modules-available/translation/lang/de/templates/template-list.json
deleted file mode 100644
index 5d6945bc..00000000
--- a/modules-available/translation/lang/de/templates/template-list.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "lang_adminInfo": "Dies ist eine Liste aller Templates. Die \u0022Status\u0022-Spalte zeigt an, wenn f\u00fcr ein Template \u00fcbersetzungen fehlen, oder veraltete Tags definiert sind.",
- "lang_langAdministration": "Templates",
- "lang_status": "Status"
-} \ No newline at end of file
diff --git a/modules-available/translation/lang/en/module.json b/modules-available/translation/lang/en/module.json
index 07bdb07e..bf8920a7 100644
--- a/modules-available/translation/lang/en/module.json
+++ b/modules-available/translation/lang/en/module.json
@@ -1,16 +1,3 @@
{
- "lang_adminInfo": "In this section you can change the JSON tags that contains the translated texts used by the site. To do this, select a template below to modify their respective tags. Alternatively, click the link below to change the messages of the site.",
- "lang_back": "Back",
- "lang_deleteTAG": "Delete",
- "lang_editHardcoded": "Edit hardcoded strings",
- "lang_editMessages": "Edit Messages",
- "lang_editModules": "Edit Module Translations",
- "lang_editSettings": "Edit configuration variables related strings",
- "lang_langAdministration": "Language Administration",
- "lang_module": "Module",
- "lang_save": "Save",
- "lang_status": "Status",
- "lang_templateAdminHelp": "Here you can translate and edit phrases and texts.",
- "lang_templateHint": "Hint: Yellow lines indicate a translation is missing and red lines indicate a tag is not being used by the template.",
"module_name": "Translation"
} \ No newline at end of file
diff --git a/modules-available/translation/lang/en/template-tags.json b/modules-available/translation/lang/en/template-tags.json
new file mode 100644
index 00000000..f9c6b3ba
--- /dev/null
+++ b/modules-available/translation/lang/en/template-tags.json
@@ -0,0 +1,22 @@
+{
+ "lang_adminInfo": "This is a list of all templates. The \"status\"-column tells if there are translations missing, or unused tags are defined.",
+ "lang_back": "Back",
+ "lang_createTag": "Create TAG",
+ "lang_deleteTAG": "Delete",
+ "lang_editConfigModule": "Edit config module strings",
+ "lang_editHardcoded": "Edit hardcoded strings",
+ "lang_editMessages": "Edit Messages",
+ "lang_editModules": "Edit Module Translations",
+ "lang_editSettings": "Edit configuration variables related strings",
+ "lang_editTemplates": "Edit template strings",
+ "lang_englishTAG": "English TAG",
+ "lang_germanTAG": "German TAG",
+ "lang_langAdministration": "Templates",
+ "lang_module": "Module",
+ "lang_newTAG": "New TAG",
+ "lang_portugueseTAG": "Portuguese TAG",
+ "lang_save": "Save",
+ "lang_status": "Status",
+ "lang_templateAdminHelp": "Here you can translate and edit phrases and texts.",
+ "lang_templateHint": "Hint: Yellow lines indicate a translation is missing and red lines indicate a tag is not being used by the template."
+} \ No newline at end of file
diff --git a/modules-available/translation/lang/en/templates/_page.json b/modules-available/translation/lang/en/templates/_page.json
deleted file mode 100644
index 5a48b696..00000000
--- a/modules-available/translation/lang/en/templates/_page.json
+++ /dev/null
@@ -1,9 +0,0 @@
-{
- "lang_adminInfo": "In this section you can change the JSON tags that contains the translated texts used by the site. To do this, select a template below to modify their respective tags. Alternatively, click the link below to change the messages of the site.",
- "lang_editConfigModule": "Edit config module strings",
- "lang_editHardcoded": "Edit hardcoded strings",
- "lang_editMessages": "Edit Messages",
- "lang_editSettings": "Edit configuration variables related strings",
- "lang_editTemplates": "Edit template strings",
- "lang_langAdministration": "Language Administration"
-} \ No newline at end of file
diff --git a/modules-available/translation/lang/en/templates/edit.json b/modules-available/translation/lang/en/templates/edit.json
deleted file mode 100644
index 05c6697a..00000000
--- a/modules-available/translation/lang/en/templates/edit.json
+++ /dev/null
@@ -1,12 +0,0 @@
-{
- "lang_back": "Back",
- "lang_createTag": "Create TAG",
- "lang_deleteTAG": "Delete",
- "lang_englishTAG": "English TAG",
- "lang_germanTAG": "German TAG",
- "lang_newTAG": "New TAG",
- "lang_portugueseTAG": "Portuguese TAG",
- "lang_save": "Save",
- "lang_templateAdminHelp": "Here you can translate and edit phrases and texts.",
- "lang_templateHint": "Hint: Yellow lines indicate a translation is missing and red lines indicate a tag is not being used by the template."
-} \ No newline at end of file
diff --git a/modules-available/translation/lang/en/templates/template-list.json b/modules-available/translation/lang/en/templates/template-list.json
deleted file mode 100644
index e3feb70b..00000000
--- a/modules-available/translation/lang/en/templates/template-list.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "lang_adminInfo": "This is a list of all templates. The \u0022status\u0022-column tells if there are translations missing, or unused tags are defined.",
- "lang_langAdministration": "Templates",
- "lang_status": "Status"
-} \ No newline at end of file
diff --git a/modules-available/translation/lang/pt/module.json b/modules-available/translation/lang/pt/module.json
index 14964c89..47ab1428 100644
--- a/modules-available/translation/lang/pt/module.json
+++ b/modules-available/translation/lang/pt/module.json
@@ -1,16 +1,3 @@
{
- "lang_adminInfo": "Nesta se\u00e7\u00e3o \u00e9 poss\u00edvel alterar as TAGs de JSON que cont\u00e9m os textos traduzidos utilizados no site. Para fazer isto, selecione um template abaixo para modificar suas respectivas TAGs. Alternativamente, clique no link abaixo para alterar as mensagens do site.",
- "lang_back": "Voltar",
- "lang_deleteTAG": "Excluir",
- "lang_editHardcoded": "Editar Textos Hardcoded",
- "lang_editMessages": "Editar Mensagens",
- "lang_editModules": "Editar Tradu\u00e7\u00f5es dos M\u00f3dulos",
- "lang_editSettings": "Editar Textos das Vari\u00e1veis de Configura\u00e7\u00e3o",
- "lang_langAdministration": "Administra\u00e7\u00e3o da L\u00edngua",
- "lang_module": "M\u00f3dulo",
- "lang_save": "Salvar",
- "lang_status": "Status",
- "lang_templateAdminHelp": "Aqui voc\u00ea pode traduzir e editar frases e textos.",
- "lang_templateHint": "Dica: linhas amarelas indicam que uma tradu\u00e7\u00e3o est\u00e1 faltando e linhas vermelhas indicam que uma tag n\u00e3o \u00e9 utilizada pelo template.",
"module_name": "Tradu\u00e7\u00f5es"
} \ No newline at end of file
diff --git a/modules-available/translation/lang/pt/template-tags.json b/modules-available/translation/lang/pt/template-tags.json
new file mode 100644
index 00000000..98d85ee3
--- /dev/null
+++ b/modules-available/translation/lang/pt/template-tags.json
@@ -0,0 +1,15 @@
+{
+ "lang_adminInfo": "Nesta se\u00e7\u00e3o \u00e9 poss\u00edvel alterar as TAGs de JSON que cont\u00e9m os textos traduzidos utilizados no site. Para fazer isto, selecione um template abaixo para modificar suas respectivas TAGs. Alternativamente, clique no link abaixo para alterar as mensagens do site.",
+ "lang_back": "Voltar",
+ "lang_deleteTAG": "Excluir",
+ "lang_editHardcoded": "Editar Textos Hardcoded",
+ "lang_editMessages": "Editar Mensagens",
+ "lang_editModules": "Editar Tradu\u00e7\u00f5es dos M\u00f3dulos",
+ "lang_editSettings": "Editar Textos das Vari\u00e1veis de Configura\u00e7\u00e3o",
+ "lang_langAdministration": "Administra\u00e7\u00e3o da L\u00edngua",
+ "lang_module": "M\u00f3dulo",
+ "lang_save": "Salvar",
+ "lang_status": "Status",
+ "lang_templateAdminHelp": "Aqui voc\u00ea pode traduzir e editar frases e textos.",
+ "lang_templateHint": "Dica: linhas amarelas indicam que uma tradu\u00e7\u00e3o est\u00e1 faltando e linhas vermelhas indicam que uma tag n\u00e3o \u00e9 utilizada pelo template."
+} \ No newline at end of file
diff --git a/modules-available/translation/page.inc.php b/modules-available/translation/page.inc.php
index 3548f727..789500c5 100644
--- a/modules-available/translation/page.inc.php
+++ b/modules-available/translation/page.inc.php
@@ -1,18 +1,64 @@
<?php
+/**
+ * The pages where you can administrate the website translations
+ */
class Page_Translation extends Page
{
/**
- * The pages where you can administrate the website translations
- * @var string|boolean holds the target template
- * @var string|boolean used to choose which page to load
- * @var string|boolean used check if there should be an update
- * @var string|boolean used check if there should be a deletion
- * @var array|boolean holds the tags of the selected template
+ * @var string holds the target template, or subsection for custom section
*/
- private $template = false;
- private $page = false;
+ private $subsection = false;
+
+ /**
+ * @var \Module module being edited, false for module list
+ */
+ private $module = false;
+
+ /**
+ * @var string used to choose which page to load (mode of operation)
+ */
+ private $section = false;
+
+ /**
+ * @var string[] list of sections that are handled directly by this module
+ */
+ private $builtInSections;
+
+ /**
+ * @var array Custom module handler, if any, false otherwise
+ */
+ private $customHandler = false;
+
+ /**
+ * @var type Language being handled (if any in current step)
+ */
+ private $destLang = false;
+
+ /*
+ *
+ */
+
+ public function __construct()
+ {
+ $this->builtInSections = array('template', 'messages', 'custom');
+ }
+
+ private function isValidSection($section)
+ {
+ return in_array($section, $this->builtInSections);
+ }
+
+ private function loadCustomHandler($moduleName)
+ {
+ $path = 'modules/' . $moduleName . '/hooks/translation.inc.php';
+ if (!file_exists($path))
+ return false;
+ $HANDLER = array();
+ require $path;
+ return $HANDLER;
+ }
protected function doPreprocess()
{
@@ -22,26 +68,85 @@ class Page_Translation extends Page
Message::addError('no-permission');
Util::redirect('?do=Main');
}
+
+ // Set up variables
+ // Module to be edited
+ $moduleName = Request::any('module', false, 'string');
+ if ($moduleName !== false) {
+ $this->module = Module::get($moduleName, true);
+ if ($this->module === false) {
+ Message::addError('main.no-such-module', $moduleName);
+ Util::redirect('?do=Translation');
+ } elseif ($this->module->hasMissingDependencies()) {
+ Message::addError('main.module-missing-deps', $moduleName);
+ Util::redirect('?do=Translation');
+ }
+ $this->customHandler = $this->loadCustomHandler($moduleName);
+ }
+ // Section
+ $sectionName = Request::any('section', false, 'string');
+ if ($sectionName !== false) {
+ if (!$this->isValidSection($sectionName)) {
+ Message::addError('invalid-section', $sectionName);
+ if ($moduleName !== false) {
+ Util::redirect('?do=Translation&module=' . $moduleName);
+ }
+ Util::redirect('?do=Translation');
+ }
+ }
+ // Section
+ $this->section = $sectionName;
+ // Subsection (being checked when used)
+ $this->subsection = Request::any('subsection', false, 'string');
+ // LANG (verify if needed)
+ $this->destLang = Request::any('destlang', false, 'string');
if (Request::post('update')) {
$this->updateJson();
Util::redirect('?do=Translation');
}
- if (Request::post('delete')) {
- $this->deleteTag(Request::post('path'), Request::post('delete'));
- Util::redirect('?do=Translation'); // TODO: Ajax post for delete so we stay on the page
+ }
+
+ private function ensureValidDestLanguage()
+ {
+ if (!in_array($this->destLang, Dictionary::getLanguages())) {
+ Message::addError('i18n-invalid-lang', $this->destLang);
+ Util::redirect('?do=Translation');
}
-
- $this->template = Request::get('template');
- $this->page = Request::get('page');
}
protected function doRender()
{
$langs = Dictionary::getLanguages(true);
+
+ // Overview (list of modules)
+ if ($this->module === false) {
+ $this->showModuleList();
+ return;
+ }
+
+ // One module - overview
+ if ($this->section === false) {
+ $this->showModule();
+ return;
+ }
+
+ // Edit template string
+ if ($this->section === 'template') {
+ $this->ensureValidDestLanguage();
+ $this->showTemplateEdit();
+ return;
+ }
+
+ // Messugiz
+ if ($this->section === 'messages') {
+ $this->ensureValidDestLanguage();
+ $this->showMessagesEdit();
+ return;
+ }
//load the page accordingly to the link
- switch ($this->page) {
+ switch ($this->section) {
case 'messages':
//renders the message edit page
Render::addTemplate('edit', array(
@@ -79,56 +184,85 @@ class Page_Translation extends Page
'tags' => $this->buildTranslationTable('config-module')
));
break;
- case 'template':
- $this->template = Util::safePath($this->template);
- if ($this->template === false) {
- Message::addError('invalid-path');
- Util::redirect('?do=Translation');
- }
- //renders the tag edition page
- Render::addTemplate('edit', array(
- 'path' => 'modules/' . $this->template,
- 'langs' => $langs,
- 'tags' => $this->loadTemplateEditArray($this->template)
- ));
- break;
- case 'templates':
- //renders the template selection page
- Render::addTemplate('template-list', array(
- 'table' => $this->loadTemplatesList(),
- ));
- break;
- case 'modules':
- Render::addTemplate('module-list', array(
- 'table' => $this->loadModuleTable()
- ));
- break;
default:
//renders main page with selection of what part to edit
Render::addTemplate('_page');
}
}
- private function loadModuleTable(){
+ private function showModuleList()
+ {
$table = array();
- $modules = $this->loadModuleList();
+ $modules = Module::getAll();
foreach ($modules as $module) {
$msgs = $this->checkModuleTranslation($module);
$table[] = array(
- 'module' => $module,
+ 'module' => $module->getIdentifier(),
+ 'depfail' => $module->hasMissingDependencies(),
'status' => $msgs
);
}
sort($table);
- return $table;
+ Render::addTemplate('module-list', array(
+ 'table' => $table
+ ));
+ }
+
+ private function showModule()
+ {
+ $templateTags = $this->loadModuleTemplateTags();
+ $data = array(
+ 'module' => $this->module->getIdentifier(),
+ 'moduleName' => $this->module->getDisplayName()
+ );
+ $list = array();
+ $data['tagcount'] = 0;
+ foreach ($templateTags as $templates) {
+ $list = array_merge($list, $templates);
+ $data['tagcount']++;
+ }
+ foreach (Dictionary::getLanguages(true) as $lang) {
+ list($missing, $unused) = $this->getModuleTemplateStatus($lang['cc'], $templateTags);
+ $data['langs'][] = array(
+ 'cc' => $lang['cc'],
+ 'name' => $lang['name'],
+ 'missing' => $missing,
+ 'unused' => $unused
+ );
+ }
+ $data['templates'] = array();
+ foreach (array_unique($list) as $template) {
+ $data['templates'][] = array('template' => $template);
+ }
+ Render::addTemplate('template-list', $data);
+ }
+
+ private function showTemplateEdit()
+ {
+ Render::addTemplate('edit', array(
+ 'destlang' => $this->destLang,
+ 'tags' => $this->loadTemplateEditArray(),
+ 'module' => $this->module->getIdentifier(),
+ 'section' => $this->section
+ ));
+ }
+
+ private function showMessagesEdit()
+ {
+ Render::addTemplate('edit', array(
+ 'destlang' => $this->destLang,
+ 'tags' => $this->loadMessagesEditArray(),
+ 'module' => $this->module->getIdentifier(),
+ 'section' => $this->section
+ ));
}
private function loadModuleEdit(){
$table = array();
- $tags = array_flip($this->loadModuleTags($this->module));
+ $tags = array_flip($this->loadModuleTemplateTags($this->module));
foreach ($this->langs as $lang) {
$tags = array_merge($tags, Dictionary::getArray($this->module,$lang['cc']));
}
@@ -142,7 +276,7 @@ class Page_Translation extends Page
'placeholder' => 'TAG - ' . $lang['name'],
'translation' => $translations[$tag]
);
- if(!in_array($tag, $this->loadModuleTags($this->module)))
+ if(!in_array($tag, $this->loadModuleTemplateTags($this->module)))
$class = 'danger';
else if(!$translations[$tag])
$class = 'warning';
@@ -157,58 +291,105 @@ class Page_Translation extends Page
return $table;
}
- private function loadModuleList(){
- // Return an array with the modules and the tags data
- $list = array();
- $list = array_diff(scandir('modules/'), array('..', '.'));
- return $list;
+ /**
+ * Get all tags used by templates of the given module.
+ * @param \Module $module module in question, false to use the one being edited
+ * @return array inde is tag, valie is array of templates using that tag
+ */
+ private function loadModuleTemplateTags($module = false)
+ {
+ if ($module === false) {
+ $module = $this->module;
+ }
+ $tags = array();
+ $path = 'modules/' . $module->getIdentifier() . '/templates';
+ if (is_dir($path)) {
+ // Return an array with the module language tags
+ $objects = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($path));
+ foreach ($objects as $name => $object) {
+ if (substr($name, -5) === '.html' && is_file($name)) {
+ $relTemplateName = substr($name, strlen($path), -5);
+ foreach ($this->getTagsFromTemplate($name) as $tag) {
+ $tags[$tag][] = $relTemplateName;
+ }
+ }
+ }
+ }
+ return $tags;
}
+
+ private function getTagsFromTemplate($templateFile)
+ {
+ //checks if the template is valid
+ if (!file_exists($templateFile)) {
+ Message::addError('invalid-template', $templateFile);
+ return false;
+ }
- private function loadModuleTags($module){
- // Return an array with the module language tags
- $path = "modules/" . $module . "templates/";
- $files = array_diff(scandir($path), array('..', '.'));
- $tags = array();
- foreach ($files as $file) {
- $content = file_get_contents($path . $file);
- preg_match_all('/{{(lang_.*?)}}/s', $content, $matches);
- if (isset($matches[1]) && is_array($matches[1])){
- $tags = array_merge($tags,array_unique($matches[1]));
+ //finds every mustache tag within the html template
+ $htmlTemplate = file_get_contents($templateFile);
+ preg_match_all('/{{(lang_.*?)}}/s', $htmlTemplate, $matches);
+ if (!isset($matches[1]) || !is_array($matches[1]))
+ return array();
+ return array_unique($matches[1]);
+ }
+
+ /**
+ * Get missing and unused counters for given module's templates.
+ *
+ * @param type $lang lang to use
+ * @param type $tags
+ * @param type $module
+ * @return array list(missingCount, unusedCount)
+ */
+ private function getModuleTemplateStatus($lang, $tags = false, $module = false)
+ {
+ if ($module === false) {
+ $module = $this->module;
+ }
+ if ($tags === false) {
+ $tags = $this->loadModuleTemplateTags($module);
+ }
+ $globalTranslation = Dictionary::getArray('main', 'global-template-tags', $lang);
+ $translation = array_unique(array_merge(Dictionary::getArray($module->getIdentifier(), 'template-tags', $lang), $globalTranslation));
+ $matches = 0;
+ $unused = 0;
+ $expected = count($tags);
+ foreach ($translation as $key => $value) {
+ if(!isset($tags[$key])) {
+ if (!in_array($key, $globalTranslation)) {
+ $unused++;
+ }
+ } else {
+ $matches++;
}
+
}
- return array_unique($tags);
+ $missing = $expected - $matches;
+ return array($missing, $unused);
}
- private function checkModuleTranslation($module){
- $tags = $this->loadModuleTags($module);
- $translation = array();
+ private function checkModuleTranslation($module)
+ {
+ $tags = $this->loadModuleTemplateTags($module);
$msgs = '';
- foreach ($this->langs as $key => $lang) {
- $translation = Dictionary::getArray($module,$lang['cc']);
- $matches = 0;
- $unused = 0;
- $expected = count($tags);
- foreach ($translation as $key => $value) {
- if(!in_array($key, $tags))
- $unused ++;
- else if(!empty($value))
- $matches ++;
+ foreach (Dictionary::getLanguages() as $lang) {
+ list($missing, $unused) = $this->getModuleTemplateStatus($lang, $tags, $module);
- }
-
- $diff = $expected - $matches;
$msg = "";
- if ($diff > 0)
- $msg .= $diff . " JSON tag(s) are missing";
- if ($diff > 0 && $unused > 0)
- $msg .= "<br>";
- if ($unused > 0)
- $msg .= $unused . " JSON tag(s) are not being used";
- if(!empty($msg))
- $msgs .= "<div><span class='badge'>{$lang['name']}:</span> $msg</div>";
- }
- if(empty($msgs))
+ if ($missing > 0) {
+ $msg .= " [$missing JSON tag(s) are missing] ";
+ }
+ if ($unused > 0) {
+ $msg .= " [$unused JSON tag(s) are not being used] ";
+ }
+ if(!empty($msg)) {
+ $msgs .= "<div><div class='pull-left'><div class='badge'>$lang</div></div> $msg<div class='clearfix'></div></div>";
+ }
+ }
+ if(empty($msgs)) {
$msgs = 'OK';
+ }
return $msgs;
}
/**
@@ -271,13 +452,13 @@ class Page_Translation extends Page
* Finds and returns all PHP files of slxadmin
* @return array of all php files
*/
- private function listPhp()
+ private function getModulePhpFiles()
{
$php = array();
- $dir = '.';
+ $dir = 'modules/' . $this->module->getIdentifier();
$objects = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($dir));
foreach ($objects as $name => $object) {
- if (substr($name, -4) === '.php') {
+ if (substr($name, -4) === '.php' && is_file($name)) {
$php[] = $name;
}
}
@@ -330,16 +511,83 @@ class Page_Translation extends Page
}
/**
- * Get array to pass to edit page with all the tags and translations for the given template
+ * Get array to pass to edit page with all the tags and translations.
+ *
* @param string $path the template's path
- * @return array the information about the JSON tags
+ * @return array structure to pass to the tags list in the edit template
*/
- private function loadTemplateEditArray($path)
+ private function loadTemplateEditArray()
{
- $tags = $this->loadTemplateTags($path);
+ $tags = $this->loadModuleTemplateTags();
if ($tags === false)
return false;
- return $this->buildTranslationTable("modules/" . $path, $tags);
+ $table = $this->buildTranslationTable('template-tags', array_keys($tags), true);
+ $global = Dictionary::getArray($this->module->getIdentifier(), 'global-template-tags', $this->destLang);
+ foreach ($table as &$entry) {
+ if (empty($entry['translation']) && isset($global[$entry['tag']])) {
+ $entry['placeholder'] = $global[$entry['tag']];
+ }
+ if (!isset($tags[$entry['tag']]))
+ continue;
+ $entry['notes'] = implode('<br>', $tags[$entry['tag']]);
+ }
+ return $table;
+ }
+
+ /**
+ * Get array to pass to edit page with all the message ids.
+ *
+ * @param string $path the template's path
+ * @return array structure to pass to the tags list in the edit template
+ */
+ private function loadMessagesEditArray()
+ {
+ // TODO: Scan for uses in other modules, handle module.id syntax
+ $tags = $this->loadTagsFromPhp('/Message\s*::\s*add\w+\s*\(\s*[\'"]([^\'"]*)[\'"]\s*(\)|\,.*)/i');
+ $table = $this->buildTranslationTable('messages', array_keys($tags), true);
+ foreach ($table as &$entry) {
+ if (isset($tags[$entry['tag']]) && is_string($tags[$entry['tag']])) {
+ $entry['notes'] = 'Params: ' . $this->countMessageParams($tags[$entry['tag']]);
+ }
+ }
+ return $table;
+ }
+
+ private function countMessageParams($str)
+ {
+ error_log($str);
+ $quote = false;
+ $escape = false;
+ $count = 0;
+ $len = strlen($str);
+ $depth = 0;
+ for ($i = 0; $i < $len; ++$i) {
+ $char = $str{$i};
+ if ($escape) {
+ $escape = false;
+ continue;
+ }
+ if ($quote === false) {
+ if ($char === ',') {
+ if ($depth === 0) {
+ $count++;
+ }
+ } elseif ($char === '"' || $char === "'") {
+ $quote = $char;
+ } elseif ($char === '{' || $char === '(' || $char === '[') {
+ $depth++;
+ } elseif ($char === '}' || $char === ')' || $char === ']') {
+ $depth--;
+ }
+ } else {
+ if ($char === $quote) {
+ $quote = false;
+ } elseif ($char === '\\') {
+ $escape = true;
+ }
+ }
+ }
+ return $count;
}
/**
@@ -365,23 +613,12 @@ class Page_Translation extends Page
}
/**
- * Load array of tags and translations of all messages
- * @return array the information about the JSON tags
- */
- private function loadMessageEditArray()
- {
- $tags = $this->loadTagsFromPhp('/Message\s*::\s*add\w+\s*\(\s*[\'"](.*?)[\'"]\s*[\)\,]/i');
- if ($tags === false)
- return false;
- return $this->buildTranslationTable('messages', $tags);
- }
-
- /**
* Load array of tags and translations of all strings found in the php files.
* @return array the information about the JSON tags
*/
private function loadHardcodedStringEditArray()
{
+ // TODO: Return changed
$tags = $this->loadTagsFromPhp('/Dictionary\s*::\s*translate\s*\(\s*[\'"]([^\'"]*?)[\'"]\s*\)/i');
if ($tags === false)
return false;
@@ -397,65 +634,70 @@ class Page_Translation extends Page
private function loadTagsFromPhp($regexp)
{
// Get all php files, so we can find all strings that need to be translated
- $php = $this->listPhp();
+ $php = $this->getModulePhpFiles();
$tags = array();
// Now find all tags in all php files. Only works for literal usage, not something like $foo = 'bar'; Dictionary::translate($foo);
foreach ($php as $file) {
$content = @file_get_contents($file);
- if ($content === false || preg_match_all($regexp, $content, $out) < 1)
+ if ($content === false || preg_match_all($regexp, $content, $out, PREG_SET_ORDER) < 1)
continue;
- foreach ($out[1] as $id) {
- $tags[$id] = true;
+ foreach ($out as $set) {
+ $tags[$set[1]] = isset($set[2]) ? $set[2] : true;
}
}
- return array_keys($tags);
+ return $tags;
}
- private function buildTranslationTable($path, $requiredTags = false)
+ private function buildTranslationTable($file, $requiredTags = false, $findAlreadyTranslated = false)
{
- // All languages
- $langArray = Dictionary::getLanguages();
-
$tags = array();
if ($requiredTags !== false) {
foreach ($requiredTags as $tagName) {
$tags[$tagName] = array('tag' => $tagName);
- foreach ($langArray as $lang) {
- $tags[$tagName]['langs'][$lang]['lang'] = $lang;
- $tags[$tagName]['missing'] = count($langArray);
- }
}
}
- // Finds every JSON tag within the JSON language files
- foreach ($langArray as $lang) {
- $jsonTags = Dictionary::getArray($path, $lang, true);
- if (!is_array($jsonTags))
- continue;
+ // Finds every tag within the JSON language file
+ $jsonTags = Dictionary::getArray($this->module->getIdentifier(), $file, $this->destLang);
+ if (is_array($jsonTags)) {
foreach ($jsonTags as $tag => $translation) {
- $tags[$tag]['langs'][$lang]['translation'] = $translation;
- $tags[$tag]['langs'][$lang]['lang'] = $lang;
- if (strpos($translation, "\n") !== false)
- $tags[$tag]['langs'][$lang]['big'] = true;
+ $tags[$tag]['translation'] = $translation;
+ if (strpos($translation, "\n") !== false) {
+ $tags[$tag]['big'] = true;
+ }
$tags[$tag]['tag'] = $tag;
- if (!isset($tags[$tag]['missing']))
- $tags[$tag]['missing'] = 0;
- if (!empty($translation))
- $tags[$tag]['missing'] --;
}
}
- // Fill the blanks
- foreach ($langArray as $lang) {
- foreach (array_keys($tags) as $tagName) {
- if (!isset($tags[$tagName]['langs'][$lang]))
- $tags[$tagName]['langs'][$lang]['lang'] = $lang;
+ if ($findAlreadyTranslated) {
+ $srcLangs = array_merge(array(LANG), array('en'), Dictionary::getLanguages());
+ $srcLangs = array_unique($srcLangs);
+ $key = array_search($this->destLang, $srcLangs);
+ if ($key !== false) {
+ unset($srcLangs[$key]);
+ }
+ foreach ($srcLangs as $lang) {
+ $otherLang = Dictionary::getArray($this->module->getIdentifier(), $file, $lang);
+ if (!is_array($otherLang))
+ continue;
+ $missing = false;
+ foreach (array_keys($tags) as $tag) {
+ if (isset($tags[$tag]['samplelang']))
+ continue;
+ if (!isset($otherLang[$tag])) {
+ $missing = true;
+ } else {
+ $tags[$tag]['samplelang'] = $lang;
+ $tags[$tag]['sampletext'] = $otherLang[$tag];
+ }
+ }
+ if (!$missing)
+ break;
}
}
- // Finally remove $lang from the keys so mustache will iterate over them via {{#..}}
+ $tagid = 0;
foreach ($tags as &$tag) {
- $tag['langs'] = array_values($tag['langs']);
- if ($requiredTags !== false)
- $tag['class'] = $this->getTagColor($tag['missing']);
+ $tag['tagid'] = $tagid++;
}
+ // Finally remove $lang from the keys so mustache will iterate over them via {{#..}}
return array_values($tags);
}
@@ -477,91 +719,96 @@ class Page_Translation extends Page
//if it's ok don't change the class
return '';
}
+
+ private function getJsonFile()
+ {
+ $prefix = 'modules/' . $this->module->getIdentifier() . '/lang/' . $this->destLang;
+ // File
+ if ($this->section === 'messages') {
+ return $prefix . '/messages.json';
+ }
+ if ($this->section === 'template') {
+ return $prefix . '/template-tags.json';
+ }
+ // Custom submodule
+ if ($this->section === 'custom') {
+ if ($this->customHandler === false || !isset($this->customHandler['subsections'])) {
+ Message::addError('no-custom-handlers');
+ Util::redirect('?do=Translation');
+ }
+ if (!in_array($this->subsection, $this->customHandler['subsections'], true)) {
+ Message::addError('invalid-custom-handler', $this->subsection);
+ Util::redirect('?do=Translation');
+ }
+ return $prefix . '/' . $this->subsection;
+ }
+ Message::addError('invalid-section', $this->section);
+ Util::redirect('?do=Translation');
+ }
/**
* Updates a JSON file with it's new tags or/and tags values
*/
private function updateJson()
{
- $langArray = Dictionary::getLanguages();
- foreach ($langArray as $lang) {
- $json[$lang] = array();
+ $this->ensureValidDestLanguage();
+ if ($this->module === false) {
+ Message::addError('main.no-module-given');
+ Util::redirect('?do=Translation');
}
+ $file = $this->getJsonFile();
+
+ $data = array();
//find the tag requests to change the file
foreach ($_POST as $key => $value) {
- $str = explode('#', $key, 3);
- if (count($str) !== 3 || $str[0] !== 'lang')
- continue;
- $lang = $str[1];
- $tag = trim($str[2]);
- if (!isset($json[$lang])) {
- Message::addWarning('i18n-invalid-lang', $lang);
+ $str = explode('#!#', $key, 2);
+ if (count($str) !== 2)
continue;
- }
- if (empty($tag)) {
- Message::addWarning('i18n-empty-tag');
- continue;
- }
- $value = trim($value);
- if ($tag !== 'newtag') {
+ if ($str[0] === 'lang') {
+ $tag = trim($str[1]);
+ if (empty($tag)) {
+ Message::addWarning('i18n-empty-tag');
+ continue;
+ }
if (empty($value)) {
- unset($json[$lang][$tag]);
+ unset($data[$tag]);
} else {
- $json[$lang][$tag] = $value;
+ $data[$tag] = $value;
}
- } else {
- if (!empty($value)) // TODO: Error message if new tag's name collides with existing
- $json[$lang][$_REQUEST['newtag']] = $value;
}
}
-
- // JSON_PRETTY_PRINT is only available starting with php 5.4.0.... Use upgradephp's json_encode
- require_once('inc/up_json_encode.php');
+
+ $translation = Request::post('new-text', array(), 'array');
+ foreach (Request::post('new-id', array(), 'array') as $k => $tag) {
+ if (empty($translation[$k]))
+ continue;
+ $data[(string)$tag] = (string)$translation[$k];
+ }
//saves the new values on the file
- foreach ($json as $key => $array) {
- $path = Util::safePath('lang/' . $key . '/' . Request::post('path') . '.json');
- if ($path === false) {
- Message::addError('invalid-path');
- Util::redirect('?do=Translation');
+ $path = dirname($file);
+ if (!is_dir($path)) {
+ mkdir($path, 0755, true);
+ }
+
+ if (empty($data)) {
+ if (file_exists($file)) {
+ unlink($file);
}
- @mkdir(dirname($path), 0755, true);
- ksort($array); // Sort by key, so the diff on the output is cleaner
- $json = up_json_encode($array, JSON_PRETTY_PRINT); // Also for better diffability of the json files, we pretty print
+ } else {
+ // JSON_PRETTY_PRINT is only available starting with php 5.4.0.... Use upgradephp's json_encode
+ require_once('inc/up_json_encode.php');
+ ksort($data); // Sort by key, so the diff on the output is cleaner
+ $json = up_json_encode($data, JSON_PRETTY_PRINT); // Also for better diffability of the json files, we pretty print
//exits the function in case the action was unsuccessful
- if (@file_put_contents($path, $json) === false) {
+ if (file_put_contents($file, $json) === false) {
Message::addError('invalid-template');
return;
}
}
- Message::addSuccess('updated-tags');
- }
- /**
- * Delete a specific JSON tag from a JSON files
- * @var string the JSON's file path
- * @var the JSON tag to be deleted
- * @return boolean if the action was not successful
- */
- private function deleteTag($path, $tag)
- {
- // JSON_PRETTY_PRINT is only available starting with php 5.4.0.... Use upgradephp's json_encode
- require_once('inc/up_json_encode.php');
-
- //delete the tag from every language file
- $langArray = Dictionary::getLanguages();
- foreach ($langArray as $lang) {
- $json = Dictionary::getArray($path, $lang);
- unset($json[$tag]);
- $result = file_put_contents('lang/' . $lang . '/' . $path . '.json', up_json_encode($json, JSON_PRETTY_PRINT));
- //add warning and exit in case the action was unsuccessful
- if ($result === false) {
- Message::addWarning('unsuccessful-action');
- return false;
- }
- }
- Message::addSuccess('deleted-tag');
+ Message::addSuccess('updated-tags');
}
/**
diff --git a/modules-available/translation/templates/edit.html b/modules-available/translation/templates/edit.html
index dc01deb6..2cc0e599 100644
--- a/modules-available/translation/templates/edit.html
+++ b/modules-available/translation/templates/edit.html
@@ -1,67 +1,92 @@
-<div class="container">
- <div class="panel panel-default">
- <div class="panel-heading">
- {{path}}
+<div class="panel panel-default">
+ <div class="panel-heading">
+ {{module}} / {{section}}
+ </div>
+ <div class="panel-body">
+ <p>{{lang_templateAdminHelp}}</p>
+ <div class="alert alert-info">
+ {{lang_templateHint}}
</div>
- <div class="panel-body">
- <p>{{lang_templateAdminHelp}}</p>
- <div class="alert alert-info">
- {{lang_templateHint}}
+ <form action="?do=Translation" method="post" class="slx-visible-rows">
+ <input type="hidden" name="module" value="{{module}}">
+ <input type="hidden" name="destlang" value="{{destlang}}">
+ <input type="hidden" name="section" value="{{section}}">
+ <input type="hidden" name="subsection" value="{{subsection}}">
+ <input type="hidden" name="token" value="{{token}}">
+ <a class="btn btn-primary" href='?do=Translation' >{{lang_back}}</a>
+ <button class="btn btn-primary" type="button" onclick="addTag()" >{{lang_createTag}}</button>
+ <button type="submit" class="btn btn-primary" name="update" value="true">{{lang_save}}</button>
+ <div class="row">
+ <div class="col-xs-4 col-sm-3">{{lang_tag}}</div>
+ <div class="col-xs-6 col-sm-4">{{lang_translation}}</div>
+ <div class="hidden-xs col-sm-4">{{lang_sample}}</div>
+ <div class="col-xs-2 col-sm-1">!</div>
</div>
- <form action="?do=Translation" method="post">
- <input type="hidden" name="path" value="{{path}}">
- <input type="hidden" name="token" value="{{token}}">
- <a class="btn btn-primary" href='?do=Translation' >{{lang_back}}</a>
- <button class="btn btn-primary" type="button" onclick="addTag()" >{{lang_createTag}}</button>
- <button type="submit" class="btn btn-primary" name="update" value="true">{{lang_save}}</button>
- <table class="table table-hover">
- <thead>
- <tr>
- <th>Mustache Tag</th>
- {{#langs}}
- <th>{{name}}</th>
- {{/langs}}
- <th></th>
- </tr>
- </thead>
- <tbody>
- {{#tags}}
- <tr class="{{class}}" id="{{tag}}">
- <td>{{tag}}</td>
- {{#langs}}
- <td>
- {{^big}}
- <input type="text" class="form-control switchable" value="{{translation}}" ondblclick="mb(this)" name="lang#{{lang}}#{{tag}}">
- {{/big}}
- {{#big}}
- <textarea rows="3" class="form-control" name="lang#{{lang}}#{{tag}}">{{translation}}</textarea>
- {{/big}}
- </td>
- {{/langs}}
- <td>
- <button type="submit" class="btn btn-danger btn-xs" name="delete" value="{{tag}}"><span class="glyphicon glyphicon-remove"></span> {{lang_deleteTAG}}</button>
- </td>
- </tr>
- {{/tags}}
- <tr id="newTag">
- </tr>
- </tbody>
- </table>
- <a class="btn btn-primary" href='?do=Translation' >{{lang_back}}</a>
- <button class="btn btn-primary" type="button" onclick="addTag()" >{{lang_createTag}}</button>
- <button type="submit" class="btn btn-primary" name="update" value="true">{{lang_save}}</button>
- </form>
- </div>
+ {{#tags}}
+ <div class="row {{class}}">
+ <div class="col-xs-4 col-sm-3">
+ {{tag}}
+ <div class="slx-notebox">{{{notes}}}</div>
+ </div>
+ <div class="col-xs-6 col-sm-4" id="tagid-{{tagid}}">
+ {{^big}}
+ <input type="text" class="form-control switchable" value="{{translation}}" ondblclick="slxMb(this)" name="lang#!#{{tag}}" placeholder="{{placeholder}}">
+ {{/big}}
+ {{#big}}
+ <textarea rows="3" class="form-control" name="lang#!#{{tag}}" placeholder="{{placeholder}}">{{translation}}</textarea>
+ {{/big}}
+ </div>
+ <div class="hidden-xs col-sm-4">
+ <div class="slx-textpreview"><div>
+ <div class="badge">{{samplelang}}</div>
+ {{sampletext}}
+ </div></div>
+ </div>
+ <div class="col-xs-2 col-sm-1">
+ <button type="button" class="btn btn-danger btn-xs" onclick="slxDelTag({{tagid}})"><span class="glyphicon glyphicon-remove"></span> {{lang_deleteTAG}}</button>
+ </div>
+ </div>
+ {{/tags}}
+ <div id="newTag"></div>
+ <a class="btn btn-primary" href='?do=Translation' >{{lang_back}}</a>
+ <button class="btn btn-primary" type="button" onclick="slxAddTag()" >{{lang_createTag}}</button>
+ <button type="submit" class="btn btn-primary" name="update" value="true">{{lang_save}}</button>
+ </form>
</div>
</div>
<script type="text/javascript">
- function addTag()
+ var slxNewTagCounter = 0;
+ function slxAddTag()
+ {
+ $('#newTag').before(
+ '<div class="row" id="new-delete-' + slxNewTagCounter + '">' +
+ ' <div class="col-xs-4 col-sm-3">' +
+ ' <input type="text" name="new-id[' + slxNewTagCounter + ']" class="form-control">' +
+ ' </div>' +
+ ' <div class="col-xs-6 col-sm-4">' +
+ ' <input type="text" class="form-control" name="new-text[' + slxNewTagCounter + ']">' +
+ ' </div>' +
+ ' <div class="hidden-xs col-sm-4">' +
+ ' </div>' +
+ ' <div class="col-xs-2 col-sm-1">' +
+ ' <button type="button" class="btn btn-danger btn-xs" onclick="slxDelNew(' + slxNewTagCounter + ')"><span class="glyphicon glyphicon-remove"></span> {{lang_deleteTAG}}</button>' +
+ ' </div>' +
+ '</div>'
+ );
+ slxNewTagCounter++;
+ }
+
+ function slxDelNew(id)
+ {
+ $('#new-delete-' + id).remove();
+ }
+
+ function slxDelTag(id)
{
- var target = document.getElementById('newTag');
- target.innerHTML = "<td> <input type='text' class='form-control' placeholder='{{lang_newTAG}}' name='newtag'> </td> <td style='width:250px;text-align:center;'> <input type='text' class='form-control' placeholder='{{lang_germanTAG}}' name='lang#de#newtag'> </td> <td style='width:250px;text-align:center;'> <input type='text' class='form-control' placeholder='{{lang_englishTAG}}' name='lang#en#newtag'> </td> <td style='width:250px;text-align:center;'> <input type='text' class='form-control' placeholder='{{lang_portugueseTAG}}' name='lang#pt#newtag'> </td><td></td>";
+ $('#tagid-' + id).text('-');
}
- function mb(el)
+ function slxMb(el)
{
var old = $(el);
var ta = $('<textarea name="' + el.name + '" class="form-control" rows="3"></textarea>');
diff --git a/modules-available/translation/templates/module-list.html b/modules-available/translation/templates/module-list.html
index 037a21bc..589fa0d4 100644
--- a/modules-available/translation/templates/module-list.html
+++ b/modules-available/translation/templates/module-list.html
@@ -7,26 +7,20 @@
</div>
</div>
<div class="panel panel-default">
- <table class="table table-hover">
+ <table class="table">
<thead>
<tr>
- <th width="350">{{lang_module}}</th>
+ <th>{{lang_module}}</th>
<th>{{lang_status}}</th>
<tr>
</thead>
<tbody>
{{#table}}
- <tr onclick="goTo('{{module}}');">
- <td>{{module}}</td>
+ <tr>
+ <td><a href="?do=Translation&amp;module={{module}}">{{module}}</a></td>
<td>{{{status}}}</td>
</tr>
{{/table}}
</tbody>
</table>
</div>
-
-<script>
-function goTo(link){
- window.location.href = "?do=Translation&page=module&module=" + link;
-}
-</script>
diff --git a/modules-available/translation/templates/template-list.html b/modules-available/translation/templates/template-list.html
index 881fc5af..59d0f7cf 100644
--- a/modules-available/translation/templates/template-list.html
+++ b/modules-available/translation/templates/template-list.html
@@ -1,32 +1,26 @@
+<h1>{{moduleName}} ({{module}})</h1>
<div class="panel panel-default">
<div class="panel-heading">
- {{lang_langAdministration}}
+ {{lang_templates}}
</div>
<div class="panel-body">
- <p>{{lang_adminInfo}}</p>
+ <div class="row">
+ <div class="col-sm-6">
+ {{#langs}}
+ <a href="?do=Translation&amp;module={{module}}&amp;section=template&amp;destlang={{cc}}">{{name}} &raquo;</a>
+ <ul>
+ <li>{{lang_missing}}: {{missing}}</li>
+ <li>{{lang_unused}}: {{unused}}</li>
+ </ul>
+ {{/langs}}
+ </div>
+ <div class="col-sm-6">
+ {{lang_tags}}: {{tagcount}}
+ <ul>
+ {{#templates}}
+ <li>{{template}}</li>
+ {{/templates}}
+ </ul>
+ </div>
</div>
</div>
-<div class="panel panel-default">
- <table class="table table-hover">
- <thead>
- <tr>
- <th>Template</th>
- <th>{{lang_status}}</th>
- <tr>
- </thead>
- <tbody>
- {{#table}}
- <tr onclick="goTo('{{link}}');">
- <td>{{template}}</td>
- <td>{{{status}}}</td>
- </tr>
- {{/table}}
- </tbody>
- </table>
-</div>
-
-<script>
-function goTo(link){
- window.location.href = "?do=Translation&page=template&template=" + link;
-}
-</script>
diff --git a/modules-available/usermanagement/lang/en/module.json b/modules-available/usermanagement/lang/en/module.json
index a8114ffc..a3914cea 100644
--- a/modules-available/usermanagement/lang/en/module.json
+++ b/modules-available/usermanagement/lang/en/module.json
@@ -1,19 +1,3 @@
{
- "lang_cancelConfirm": "Do you really want to delete this users?",
- "lang_close": "Close",
- "lang_create": "Create",
- "lang_edit": "Edit",
- "lang_editUser": "Edit User",
- "lang_email": "Email",
- "lang_login": "Login",
- "lang_operations": "Operation",
- "lang_password": "Password",
- "lang_remove": "Remove",
- "lang_save": "Save",
- "lang_telephone": "Telephone",
- "lang_userAdmin": "Administrator",
- "lang_userInfo": "On this section, you will be able to create website users, besides editing or removing existing users.",
- "lang_userPage": "Users",
- "lang_username": "Username",
"module_name": "Management"
} \ No newline at end of file
diff --git a/modules-available/usermanagement/lang/en/templates/user-management.json b/modules-available/usermanagement/lang/en/template-tags.json
index 61225f55..61225f55 100644
--- a/modules-available/usermanagement/lang/en/templates/user-management.json
+++ b/modules-available/usermanagement/lang/en/template-tags.json
diff --git a/modules-available/usermanagement/lang/pt/module.json b/modules-available/usermanagement/lang/pt/module.json
index d892e5c5..a65f27b4 100644
--- a/modules-available/usermanagement/lang/pt/module.json
+++ b/modules-available/usermanagement/lang/pt/module.json
@@ -1,19 +1,3 @@
{
- "lang_cancelConfirm": "Deseja realmente remover o usu\u00e1rio?",
- "lang_close": "Fechar",
- "lang_create": "Criar",
- "lang_edit": "Editar",
- "lang_editUser": "Editar Usu\u00e1rio",
- "lang_email": "Email",
- "lang_login": "Login",
- "lang_operations": "Opera\u00e7\u00f5es",
- "lang_password": "Senha",
- "lang_remove": "Remover",
- "lang_save": "Salvar",
- "lang_telephone": "Telefone",
- "lang_userAdmin": "Administrador",
- "lang_userInfo": "Nesta se\u00e7\u00e3o voc\u00ea poder\u00e1 criar usu\u00e1rios para o site, al\u00e9m de editar as informa\u00e7\u00f5es ou remover usu\u00e1rios existentes.",
- "lang_userPage": "Usu\u00e1rios",
- "lang_username": "Nome do Usu\u00e1rio",
"module_name": "Gerenciamento"
} \ No newline at end of file
diff --git a/modules-available/usermanagement/lang/pt/template-tags.json b/modules-available/usermanagement/lang/pt/template-tags.json
new file mode 100644
index 00000000..3ce0d812
--- /dev/null
+++ b/modules-available/usermanagement/lang/pt/template-tags.json
@@ -0,0 +1,18 @@
+{
+ "lang_cancelConfirm": "Deseja realmente remover o usu\u00e1rio?",
+ "lang_close": "Fechar",
+ "lang_create": "Criar",
+ "lang_edit": "Editar",
+ "lang_editUser": "Editar Usu\u00e1rio",
+ "lang_email": "Email",
+ "lang_login": "Login",
+ "lang_operations": "Opera\u00e7\u00f5es",
+ "lang_password": "Senha",
+ "lang_remove": "Remover",
+ "lang_save": "Salvar",
+ "lang_telephone": "Telefone",
+ "lang_userAdmin": "Administrador",
+ "lang_userInfo": "Nesta se\u00e7\u00e3o voc\u00ea poder\u00e1 criar usu\u00e1rios para o site, al\u00e9m de editar as informa\u00e7\u00f5es ou remover usu\u00e1rios existentes.",
+ "lang_userPage": "Usu\u00e1rios",
+ "lang_username": "Nome do Usu\u00e1rio"
+} \ No newline at end of file
diff --git a/modules-available/vmstore/lang/de/templates/page-vmstore.json b/modules-available/vmstore/lang/de/template-tags.json
index bb2c0634..e47c451d 100644
--- a/modules-available/vmstore/lang/de/templates/page-vmstore.json
+++ b/modules-available/vmstore/lang/de/template-tags.json
@@ -1,5 +1,7 @@
{
+ "lang_back": "Zur\u00fcck",
"lang_close": "Schlie\u00dfen",
+ "lang_configure": "Konfigurieren",
"lang_intern": "Intern",
"lang_nfsHelp1": "Ben\u00f6tigt wird ein NFSv4\/3-Share, der f\u00fcr den Satelliten-Server schreibbar, und f\u00fcr die Arbeitsstationen lesbar ist. Beispielkonfiguration auf dem NFS-Server, wenn der Satelliten-Server die Adresse 1.2.3.4 hat:",
"lang_nfsHelp2": "Alternative Konfiguration mittels all_sqash. In diesem Fall muss das Verzeichnis auf dem Server dem Benutzer mit der uid 1234 geh\u00f6ren:",
@@ -11,6 +13,7 @@
"lang_username": "Benutzerkennung",
"lang_vmLocation": "VM Speicherort",
"lang_vmLocationChoose": "Bitte w\u00e4hlen Sie, wo die Images der Virtuellen Maschinen gespeichert werden sollen.",
+ "lang_vmLocationConfiguration": "VM Speicherort wird konfiguriert",
"lang_vmLocationHelp1": "F\u00fcr Testzwecke k\u00f6nnen die VMs direkt auf dem Satellitenserver gespeichert werden. Sofern Sie jedoch die ausgelieferte Satelliten-vmdk betreiben bedenken Sie bitte, dass Sie dann nur ca. 100GB Speicher zur Verf\u00fcgung haben.",
"lang_vmLocationHelp2": "Im Produktivbetrieb bietet es sich an, hierf\u00fcr einen performanten Netzwerkspeicher zu benutzen. Dieser Netzwerkspeicher kann per NFS oder CIFS\/SMB eingebunden werden. In jedem Fall muss sichergestellt werden, dass der Satellitenserver zum Hinzuf\u00fcgen neuer Virtueller Maschinen Schreibzugriff auf diesen Netzwerkspeicher hat. Bei der Nutzung von NFSv3 kann dies IP-Basiert eingerichtet werden, f\u00fcr die Nutzung von CIFS\/SMB k\u00f6nnen Sie Zugangsdaten angaben, die zum Schreiben berechtigen.",
"lang_vmLocationHelp3": "Die bwLehrpool-Clients brauchen lediglich Lesezugriff auf den Netzwerkspeicher (und sollten aus Sicherheitsgr\u00fcnden auch wirklich nur lesen k\u00f6nnen). Bei CIFS\/SMB erreichen Sie dies am einfachsten, indem Sie passwortlosen Gastzugriff mit Leserechten auf die Freigabe erlauben."
diff --git a/modules-available/vmstore/lang/de/templates/mount.json b/modules-available/vmstore/lang/de/templates/mount.json
deleted file mode 100644
index dbc75281..00000000
--- a/modules-available/vmstore/lang/de/templates/mount.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "lang_back": "Zur\u00fcck",
- "lang_configure": "Konfigurieren",
- "lang_vmLocationConfiguration": "VM Speicherort wird konfiguriert"
-} \ No newline at end of file
diff --git a/modules-available/vmstore/lang/en/module.json b/modules-available/vmstore/lang/en/module.json
index 9d11656f..67e63451 100644
--- a/modules-available/vmstore/lang/en/module.json
+++ b/modules-available/vmstore/lang/en/module.json
@@ -1,21 +1,3 @@
{
- "lang_back": "Back",
- "lang_close": "Close",
- "lang_configure": "Configure",
- "lang_intern": "Intern",
- "lang_nfsHelp1": "An NFSv3-Share is required. It should be readable by all the workstations, and writable for the satellite server. An example, assuming the satellite server has IP address 1.2.3.4:",
- "lang_nfsHelp2": "Alternate configuration using all_squash. The exported directory should be owned (and be writable) by the user with uid 1234.",
- "lang_noAdditionalInformation": "No additional cofiguration required",
- "lang_password": "Password",
- "lang_readOnly": "Read-only Access",
- "lang_readWrite": "Read\/Write Access",
- "lang_save": "Save",
- "lang_username": "Username",
- "lang_vmLocation": "VM Location",
- "lang_vmLocationChoose": "Please choose where the images of virtual machines will be stored.",
- "lang_vmLocationConfiguration": "VM Location is being configured",
- "lang_vmLocationHelp1": "For test purposes, the VMs can be stored directly on the Satellite server. However, if you operate the delivered satellite vmdk please remember that you have only about 100GB of memory.",
- "lang_vmLocationHelp2": "In productive operation, it makes sense for this to use a high-performance network storage. This network storage can be integrated via NFS or CIFS \/ SMB. In any case, it must be ensured that the satellite server has write access to this network storage to add a new Virtual Machine . When using NFSv3 this can be set up IP-based, for the use of CIFS \/ SMB, you can access data disclosures that would entitle them to write.",
- "lang_vmLocationHelp3": "The bwLehrpool clients only need read access to the network storage (and for security reasons, really can only read). In CIFS \/ SMB You can do this most easily by allowing passwordless guest access with read access to the share.",
"module_name": "Virtual Machine"
} \ No newline at end of file
diff --git a/modules-available/vmstore/lang/en/templates/page-vmstore.json b/modules-available/vmstore/lang/en/template-tags.json
index 23ddbbd3..bd1e043a 100644
--- a/modules-available/vmstore/lang/en/templates/page-vmstore.json
+++ b/modules-available/vmstore/lang/en/template-tags.json
@@ -1,5 +1,7 @@
{
+ "lang_back": "Back",
"lang_close": "Close",
+ "lang_configure": "Configure",
"lang_intern": "Intern",
"lang_nfsHelp1": "An NFSv4\/3-Share is required. It should be readable by all the workstations, and writable for the satellite server. An example, assuming the satellite server has IP address 1.2.3.4:",
"lang_nfsHelp2": "Alternate configuration using all_squash. The exported directory should be owned (and be writable) by the user with uid 1234.",
@@ -11,6 +13,7 @@
"lang_username": "Username",
"lang_vmLocation": "VM Location",
"lang_vmLocationChoose": "Please choose where the images of virtual machines will be stored.",
+ "lang_vmLocationConfiguration": "VM location is configured",
"lang_vmLocationHelp1": "For test purposes, the VMs can be stored directly on the Satellite server. However, if you operate the delivered satellite vmdk please remember that you have only about 100GB of memory.",
"lang_vmLocationHelp2": "In productive operation, it makes sense for this to use a high-performance network storage. This network storage can be integrated via NFS or CIFS \/ SMB. In any case, it must be ensured that the satellite server has write access to this network storage to add a new Virtual Machine . When using NFSv3 this can be set up IP-based, for the use of CIFS \/ SMB, you can access data disclosures that would entitle them to write.",
"lang_vmLocationHelp3": "The bwLehrpool clients only need read access to the network storage (and for security reasons, really can only read). In CIFS \/ SMB You can do this most easily by allowing passwordless guest access with read access to the share."
diff --git a/modules-available/vmstore/lang/en/templates/mount.json b/modules-available/vmstore/lang/en/templates/mount.json
deleted file mode 100644
index 29814430..00000000
--- a/modules-available/vmstore/lang/en/templates/mount.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "lang_back": "Back",
- "lang_configure": "Configure",
- "lang_vmLocationConfiguration": "VM location is configured"
-} \ No newline at end of file
diff --git a/modules-available/vmstore/lang/pt/module.json b/modules-available/vmstore/lang/pt/module.json
index 1aa7fdaf..2568d028 100644
--- a/modules-available/vmstore/lang/pt/module.json
+++ b/modules-available/vmstore/lang/pt/module.json
@@ -1,21 +1,3 @@
{
- "lang_back": "Voltar",
- "lang_close": "Fechar",
- "lang_configure": "configurar",
- "lang_intern": "Iterna",
- "lang_nfsHelp1": "\u00c9 necess\u00e1rio um NFSv3-Share. Ele deve poder ser lido por todas as esta\u00e7\u00f5es de trabalho, e poder ser escrito pelo server. Um exemplo, assumindo que o server possui endere\u00e7o ip 1.2.3.4:",
- "lang_nfsHelp2": "Configura\u00e7\u00e3o alternativa usando all_squash. O usu\u00e1rio com uid 1234 deve possuir ( e poder escrever em ) o diret\u00f3rio exportado.",
- "lang_noAdditionalInformation": "Nenhuma configura\u00e7\u00e3o adicional necess\u00e1ria",
- "lang_password": "Senha",
- "lang_readOnly": "Acesso Somente Leitura",
- "lang_readWrite": "Acesso Leitura\/Escrita",
- "lang_save": "Salvar",
- "lang_username": "Nome de Usu\u00e1rio",
- "lang_vmLocation": "Localiza\u00e7\u00e3o da VM",
- "lang_vmLocationChoose": "Por favor, escolha aonde as imagens das m\u00e1quinas virtuais ser\u00e3o armazenadas.",
- "lang_vmLocationConfiguration": "Localiza\u00e7\u00e3o da VM \u00e9 configurada",
- "lang_vmLocationHelp1": "Para fins de teste, as VMs podem ser armazenados diretamente no servidor sat\u00e9lite. No entanto, se voc\u00ea operar o vmdk do sat\u00e9lite entregue por favor lembre-se que voc\u00ea tem apenas cerca de 100 GB de mem\u00f3ria.",
- "lang_vmLocationHelp2": "Em opera\u00e7\u00e3o, faz sentido para este usar um armazenamento de rede de alto desempenho. Este armazenamento de rede pode ser integrado atrav\u00e9s de NFS ou CIFS \/ SMB. Em qualquer caso, deve-se assegurar de que o servidor de sat\u00e9lite tenha acesso de grava\u00e7\u00e3o para este armazenamento de rede para poder adicionar uma nova m\u00e1quina virtual. Ao utilizar NFSv3 este pode ser configurado com base em IP, para o uso de CIFS \/ SMB, voc\u00ea pode acessar as divulga\u00e7\u00f5es de dados que lhe permitiria escrever.",
- "lang_vmLocationHelp3": "Os clientes bwLehrpool s\u00f3 precisam ter acesso de leitura ao armazenamento de rede (e por raz\u00f5es de seguran\u00e7a, realmente s\u00f3 pode ler). Em CIFS \/ SMB Voc\u00ea pode fazer isso mais facilmente, permitindo o acesso a visitantes sem senha com acesso de leitura.",
"module_name": "M\u00e1quina Virtual"
} \ No newline at end of file
diff --git a/modules-available/vmstore/lang/pt/template-tags.json b/modules-available/vmstore/lang/pt/template-tags.json
new file mode 100644
index 00000000..90ae64ad
--- /dev/null
+++ b/modules-available/vmstore/lang/pt/template-tags.json
@@ -0,0 +1,20 @@
+{
+ "lang_back": "Voltar",
+ "lang_close": "Fechar",
+ "lang_configure": "configurar",
+ "lang_intern": "Iterna",
+ "lang_nfsHelp1": "\u00c9 necess\u00e1rio um NFSv3-Share. Ele deve poder ser lido por todas as esta\u00e7\u00f5es de trabalho, e poder ser escrito pelo server. Um exemplo, assumindo que o server possui endere\u00e7o ip 1.2.3.4:",
+ "lang_nfsHelp2": "Configura\u00e7\u00e3o alternativa usando all_squash. O usu\u00e1rio com uid 1234 deve possuir ( e poder escrever em ) o diret\u00f3rio exportado.",
+ "lang_noAdditionalInformation": "Nenhuma configura\u00e7\u00e3o adicional necess\u00e1ria",
+ "lang_password": "Senha",
+ "lang_readOnly": "Acesso Somente Leitura",
+ "lang_readWrite": "Acesso Leitura\/Escrita",
+ "lang_save": "Salvar",
+ "lang_username": "Nome de Usu\u00e1rio",
+ "lang_vmLocation": "Localiza\u00e7\u00e3o da VM",
+ "lang_vmLocationChoose": "Por favor, escolha aonde as imagens das m\u00e1quinas virtuais ser\u00e3o armazenadas.",
+ "lang_vmLocationConfiguration": "Localiza\u00e7\u00e3o da VM \u00e9 configurada",
+ "lang_vmLocationHelp1": "Para fins de teste, as VMs podem ser armazenados diretamente no servidor sat\u00e9lite. No entanto, se voc\u00ea operar o vmdk do sat\u00e9lite entregue por favor lembre-se que voc\u00ea tem apenas cerca de 100 GB de mem\u00f3ria.",
+ "lang_vmLocationHelp2": "Em opera\u00e7\u00e3o, faz sentido para este usar um armazenamento de rede de alto desempenho. Este armazenamento de rede pode ser integrado atrav\u00e9s de NFS ou CIFS \/ SMB. Em qualquer caso, deve-se assegurar de que o servidor de sat\u00e9lite tenha acesso de grava\u00e7\u00e3o para este armazenamento de rede para poder adicionar uma nova m\u00e1quina virtual. Ao utilizar NFSv3 este pode ser configurado com base em IP, para o uso de CIFS \/ SMB, voc\u00ea pode acessar as divulga\u00e7\u00f5es de dados que lhe permitiria escrever.",
+ "lang_vmLocationHelp3": "Os clientes bwLehrpool s\u00f3 precisam ter acesso de leitura ao armazenamento de rede (e por raz\u00f5es de seguran\u00e7a, realmente s\u00f3 pode ler). Em CIFS \/ SMB Voc\u00ea pode fazer isso mais facilmente, permitindo o acesso a visitantes sem senha com acesso de leitura."
+} \ No newline at end of file
diff --git a/modules-available/webinterface/lang/de/templates/https.json b/modules-available/webinterface/lang/de/template-tags.json
index 621343e3..631d139f 100644
--- a/modules-available/webinterface/lang/de/templates/https.json
+++ b/modules-available/webinterface/lang/de/template-tags.json
@@ -1,12 +1,17 @@
{
"lang_HttpsIsDisabled": "HTTPS ist derzeit deaktiviert",
+ "lang_applyingSettings": "Anwenden der Einstellungen",
"lang_caChain": "Optional k\u00f6nnen Sie hier die zum Zertifikat geh\u00f6rende Zertifikatkette (CA-Chain) einf\u00fcgen. Dies wird ben\u00f6tigt, wenn das Zertifikat nicht direkt von einer der in Browsern mitgeliferten CAs signiert wurde. Die Datei enth\u00e4lt ein oder meherere Zertifikatsbl\u00f6cke, im gleichen Format wie das oben gezeigte Zertifikat.",
"lang_certificate": "Bitte f\u00fcgen Sie hier das Zertifikat ein. Das Zertifikat wird im Base64-codierten x509-Format erwartet (manchmal pem genannt). Es sieht in etwa wie folgt aus:",
"lang_customCert": "Eigenes Zertifikat verwenden",
"lang_description": "Hier k\u00f6nnen Sie festlegen, ob das Web-Interface auch per HTTPS erreichbar sein soll, und welches Zertifikat daf\u00fcr verwendet werden soll.",
+ "lang_hidePasswords": "Passw\u00f6rter maskieren",
"lang_httpsSettings": "HTTPS-Konfiguration",
+ "lang_installAndRestart": "Zertifikat installieren und Webserver neustarten",
"lang_noHttps": "HTTPS wieder deaktivieren, aktuelles Zertifikat l\u00f6schen",
+ "lang_passwordFields": "Passwortfelder",
"lang_privateKey": "Bitte f\u00fcgen Sie hier den privaten Schl\u00fcssel ein, der zum obigen Zertifikat geh\u00f6rt. Er muss ebenfalls im \"pem\"-Format vorliegen, und sieht wie folgt aus:",
"lang_randomCert": "Neues selbstsigniertes Zertifikat generieren",
- "lang_save": "Speichern"
+ "lang_save": "Speichern",
+ "lang_showPasswords": "Passw\u00f6rter anzeigen"
} \ No newline at end of file
diff --git a/modules-available/webinterface/lang/de/templates/httpd-restart.json b/modules-available/webinterface/lang/de/templates/httpd-restart.json
deleted file mode 100644
index e995a251..00000000
--- a/modules-available/webinterface/lang/de/templates/httpd-restart.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "lang_applyingSettings": "Anwenden der Einstellungen",
- "lang_installAndRestart": "Zertifikat installieren und Webserver neustarten"
-} \ No newline at end of file
diff --git a/modules-available/webinterface/lang/de/templates/passwords.json b/modules-available/webinterface/lang/de/templates/passwords.json
deleted file mode 100644
index 17c156c3..00000000
--- a/modules-available/webinterface/lang/de/templates/passwords.json
+++ /dev/null
@@ -1,7 +0,0 @@
-{
- "lang_description": "Legen Sie fest, ob Passwortfelder in der Web-Schnittstelle maskiert werden, oder ob Ihr Inhalt sichtbar sein soll. Wenn Sie die Schnittstelle in einer sicheren Umgebung nutzen (keine neugierigen Augen), kann dies den Komfort erh\u00f6hen. Das Passwortfeld der Anmeldemaske ist von dieser Einstellung ausgenommen.",
- "lang_hidePasswords": "Passw\u00f6rter maskieren",
- "lang_passwordFields": "Passwortfelder",
- "lang_save": "Speichern",
- "lang_showPasswords": "Passw\u00f6rter anzeigen"
-} \ No newline at end of file
diff --git a/modules-available/webinterface/lang/en/templates/https.json b/modules-available/webinterface/lang/en/template-tags.json
index 64631a9a..0c58fba7 100644
--- a/modules-available/webinterface/lang/en/templates/https.json
+++ b/modules-available/webinterface/lang/en/template-tags.json
@@ -1,12 +1,17 @@
{
"lang_HttpsIsDisabled": "HTTPS is currently disabled",
+ "lang_applyingSettings": "Applying settings",
"lang_caChain": "Here you can paste an optional certificate chain. It should only be required if you have a certificate that was not directly signed by a certificate authority known by the browsers. It should contain one or more certificate blocks, looking just like the certificate above.",
"lang_certificate": "Please paste your certificate below. It has to be in base64 encoded x509 format (sometimes called pem). It should look something like this:",
"lang_customCert": "Supply own certificate",
"lang_description": "Here you can set whether the web interface should be accessible via https. You can chose if you want to use a random self signed certificate, or supply your own.",
+ "lang_hidePasswords": "Mask passwords",
"lang_httpsSettings": "HTTPS settings",
+ "lang_installAndRestart": "Installing certificate and restarting web server",
"lang_noHttps": "Disable HTTPS, delete current certificate",
+ "lang_passwordFields": "Password fields",
"lang_privateKey": "Please paste the private key belonging to the certificate here. It has to be in \"pem\" format too, which should look like this:",
"lang_randomCert": "Genenrate new self-signed certificate",
- "lang_save": "Save"
+ "lang_save": "Save",
+ "lang_showPasswords": "Show passwords"
} \ No newline at end of file
diff --git a/modules-available/webinterface/lang/en/templates/httpd-restart.json b/modules-available/webinterface/lang/en/templates/httpd-restart.json
deleted file mode 100644
index 0a7d4aea..00000000
--- a/modules-available/webinterface/lang/en/templates/httpd-restart.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "lang_applyingSettings": "Applying settings",
- "lang_installAndRestart": "Installing certificate and restarting web server"
-} \ No newline at end of file
diff --git a/modules-available/webinterface/lang/en/templates/passwords.json b/modules-available/webinterface/lang/en/templates/passwords.json
deleted file mode 100644
index 2db88ae2..00000000
--- a/modules-available/webinterface/lang/en/templates/passwords.json
+++ /dev/null
@@ -1,7 +0,0 @@
-{
- "lang_description": "Set whether password fields should be masked or not. The password field of the login page to the web interface is always masked.",
- "lang_hidePasswords": "Mask passwords",
- "lang_passwordFields": "Password fields",
- "lang_save": "Save",
- "lang_showPasswords": "Show passwords"
-} \ No newline at end of file
diff --git a/style/default.css b/style/default.css
index a29e9df0..7c0a39ec 100644
--- a/style/default.css
+++ b/style/default.css
@@ -55,7 +55,7 @@ body {
border-top-right-radius: 0;
}
-.slx-default {
+.slx-default, .slx-notebox {
color: #888;
font-size: 90%;
font-style: italic;
@@ -243,6 +243,25 @@ input[readonly] {
padding: 19px;
}
+.slx-visible-rows > div.row {
+ border-style: solid;
+ border-color: #ddd;
+ border-width: 1px 0px;
+}
+
+.slx-visible-rows > div.row + div.row {
+ border-top: none;
+}
+
+.slx-visible-rows > div.row > div > * {
+ margin: 3px;
+}
+
+.slx-textpreview {
+ max-height: 60px;
+ overflow-y: auto;
+}
+
/*
* Sidebar
*/