commit df116f40be073ec1f36274861549ed4f4919a0d0
parent 789eb51676bb120c4f62b51ae008e8233f81c126
Author: Jan Dankert <devnull@localhost>
Date: Sun, 7 Jan 2018 23:23:28 +0100
Sprachdateien bei Bedarf automatisch aus der YAML-Quelle neu erzeugen. Sprachinhalte können jetzt nicht mehr leer sein.
Diffstat:
9 files changed, 150 insertions(+), 128 deletions(-)
diff --git a/modules/language/Language.class.php b/modules/language/Language.class.php
@@ -7,27 +7,34 @@ use Spyc;
class Language
{
+ private static $srcFile = __DIR__ . '/language.yml';
+
+ /**
+ * @param $iso ISO-Code
+ * @param bool $production Are we in a production environment?
+ * @return array The language values
+ */
public static function getLanguage($iso, $production = true)
{
- if (!$production) {
- return self::getLanguageDevelopment($iso);
- } else {
- return self::getLanguageProduction($iso);
+ if ( !$production) {
+ self::compileLanguage($iso);
}
+
+ return self::getLanguageProduction($iso);
}
- private static function getLanguageDevelopment($iso)
+ /**
+ * Compiles language YAML source to native language php files.
+ * Only, if the YAML source file has changed.
+ * @param $iso ISO-code
+ */
+ private static function compileLanguage($iso)
{
- $lang = array();
- foreach (self::getLanguageSource() as $key => $value) {
- if (isset($value[$iso]))
- $lang[$key] = $value[$iso];
- elseif(isset($value['en']))
- $lang[$key] = $value['en'];
- else
- $lang[$key] = $key;
+ if ( filemtime(self::$srcFile) > filemtime( self::getOutputLanguageFile('en')) )
+ {
+ // source file newer than production file => compile.
+ self::updateProduction();
}
- return $lang;
}
/**
@@ -36,21 +43,16 @@ class Language
*/
private static function getLanguageProduction($iso)
{
- $langFile = __DIR__ . '/lang-' . $iso . '.php';
-
- // Is language available?
- if (!file_exists($langFile))
- // Fallback to english
- $langFile = __DIR__ . '/lang-en.php';
- require($langFile);
+ $langFile = self::getOutputLanguageFile($iso,'en');
+ require($langFile); // Contains the function 'language()'
return language();
}
private static function getLanguageSource()
{
- return Spyc::YAMLLoad(__DIR__ . '/language.yml');
+ return Spyc::YAMLLoad( self::$srcFile);
}
@@ -74,7 +76,7 @@ class Language
}
foreach ($isoList as $iso) {
- $outputFilename = __DIR__ . '/lang-' . $iso . '.php';
+ $outputFilename = self::getOutputLanguageFile($iso);
$success = file_put_contents($outputFilename, "<?php /* DO NOT CHANGE THIS GENERATED FILE */\n");
@@ -99,6 +101,25 @@ class Language
}
}
+
+ /**
+ * Returns the native php language file for the selected iso code.
+ * @param $iso string ISO-Code
+ * @param null string $fallbackiso Fallback to this ISO-Code, if the file does not exist.
+ * @return string filename
+ */
+ private static function getOutputLanguageFile($iso, $fallbackiso = null )
+ {
+ $langFile = __DIR__ . '/lang-' . $iso . '.php';
+
+ // Is language available?
+ if ( !empty($fallbackiso) && !file_exists($langFile))
+ // Fallback to english
+ $langFile = __DIR__ . '/lang-'.$fallbackiso.'.php';
+
+ return $langFile;
+ }
+
}
?>
\ No newline at end of file
diff --git a/modules/language/lang-cn.php b/modules/language/lang-cn.php
@@ -753,8 +753,8 @@ function language() { return array(
'MENU_NAME'=>"Name",
'MENU_OPENID'=>"Open-Id",
'MENU_OTHER'=>"Other",
-'MENU_ORDER'=>"",
-'MENU_ORDER_DESC'=>"",
+'MENU_ORDER'=>"MENU_ORDER",
+'MENU_ORDER_DESC'=>"MENU_ORDER_DESC",
'MENU_PAGE_ACLFORM_DESC'=>"Add a right to this page",
'MENU_PAGE_ACLFORM'=>"Add right",
'MENU_PAGE_CHANGETEMPLATE_DESC'=>"Replace the template of this page",
@@ -834,7 +834,7 @@ function language() { return array(
'MENU_REGISTER_DESC'=>"You must be registered to use this application.",
'MENU_REGISTER'=>"Register",
'MENU_REMOVE'=>"Delete",
-'MENU_REMOVE_DESC'=>"",
+'MENU_REMOVE_DESC'=>"MENU_REMOVE_DESC",
'MENU_RIGHTS'=>"Rights",
'MENU_RIGHTS_DESC'=>"grant or revoke rights",
'MENU_RIGHTS_KEY'=>"X",
@@ -955,8 +955,8 @@ function language() { return array(
'MENU_USERS_DESC'=>"Add or remove users",
'MENU_USERS'=>"Memberships",
'MENU_USERTIMELINE'=>"My changes",
-'MENU_VALUE'=>"",
-'MENU_VALUE_DESC'=>"",
+'MENU_VALUE'=>"MENU_VALUE",
+'MENU_VALUE_DESC'=>"MENU_VALUE_DESC",
'MODE_EDIT'=>"Edit",
'MODE_EDIT_CANCEL'=>"Cancel",
'MODE_EDIT_CANCEL_DESC'=>"Cancel input",
@@ -976,8 +976,8 @@ function language() { return array(
'NOTICE_CONCURRENT_VALUE_CHANGE'=>"While your edit session another user has changed this content at {last_change_time}. Your changes where saved, but you should check the archive if the overwritten content should be merged.",
'NOTICE_COPIED'=>"was copied",
'NOTICE_DATABASE_CONNECTION_ERROR'=>"The connection to the database could not be established.",
-'ERROR_DATABASE_CONNECTION'=>"",
-'ERROR_DATABASE'=>"",
+'ERROR_DATABASE_CONNECTION'=>"ERROR_DATABASE_CONNECTION",
+'ERROR_DATABASE'=>"ERROR_DATABASE",
'NOTICE_DELETED'=>"was deleted",
'NOTICE_DONE'=>"Finished successful",
'NOTICE_ERROR'=>"An error occured",
@@ -1173,13 +1173,13 @@ function language() { return array(
'VALUE'=>"Content",
'WEEK'=>"Week",
'WINDOW_FULLSCREEN'=>"Fullscreen",
-'MENU_STRUCTURE_DESC'=>"",
-'MENU_PREVIEW_DESC'=>"",
+'MENU_STRUCTURE_DESC'=>"MENU_STRUCTURE_DESC",
+'MENU_PREVIEW_DESC'=>"MENU_PREVIEW_DESC",
'MENU_ARCHIVE_DESC'=>"Archive",
-'MENU_USERTIMELINE_DESC'=>"",
-'MENU_OPENID_DESC'=>"",
-'PAGEELEMENT_RELEASED'=>"",
-'PAGEELEMENT_USE_FROM_ARCHIVE'=>"",
+'MENU_USERTIMELINE_DESC'=>"MENU_USERTIMELINE_DESC",
+'MENU_OPENID_DESC'=>"MENU_OPENID_DESC",
+'PAGEELEMENT_RELEASED'=>"PAGEELEMENT_RELEASED",
+'PAGEELEMENT_USE_FROM_ARCHIVE'=>"PAGEELEMENT_USE_FROM_ARCHIVE",
'REMEMBER_ME'=>"Stay logged in",
'MENU_PROGRESS'=>"Tasks",
'MENU_PROGRESS_DESC'=>"Running tasks",
@@ -1194,12 +1194,12 @@ function language() { return array(
'SELECT_LANGUAGE'=>"Select language",
'SELECT_MODEL'=>"Select model",
'PWCHANGE_NOT_ALLOWED'=>"Password change is not available",
-'ERROR_IN_ELEMENT'=>"",
+'ERROR_IN_ELEMENT'=>"ERROR_IN_ELEMENT",
'USER_PASSWORD_EXPIRES'=>"Password expires",
'USER_HOTP'=>"Counter-based 2-factor authentification",
'USER_TOTP'=>"Time-based 2-factor authentification",
-'NOTICE_LOGIN_FAILED_TOKEN_FAILED'=>"",
-'USER_TOKEN'=>"",
+'NOTICE_LOGIN_FAILED_TOKEN_FAILED'=>"NOTICE_LOGIN_FAILED_TOKEN_FAILED",
+'USER_TOKEN'=>"USER_TOKEN",
'ACCESSKEY_WINDOW_ACL'=>"G",
'ELEMENT'=>"Element",
'ELEMENTS'=>"Elements",
@@ -1250,9 +1250,9 @@ function language() { return array(
'USER_MAIL_SUBJECT'=>"Your Password",
'USER_MAIL_TEXT_PREFIX'=>"Your Password for logging in to OpenRat Content Management System is:",
'USER_MAIL_TEXT_SUFFIX'=>"Note this password at a secure place and remove this E-Mail. Your are able to change your password after logging in.",
-'CHARSET'=>"",
-'MENU_TITLE_SEARCH_CONTENT'=>"",
-'MENU_TITLE_SEARCH_PROP'=>"",
+'CHARSET'=>"CHARSET",
+'MENU_TITLE_SEARCH_CONTENT'=>"MENU_TITLE_SEARCH_CONTENT",
+'MENU_TITLE_SEARCH_PROP'=>"MENU_TITLE_SEARCH_PROP",
'MENU_START'=>"Start",
'MENU_START_DESC'=>"Start",
);}
\ No newline at end of file
diff --git a/modules/language/lang-de.php b/modules/language/lang-de.php
@@ -1250,9 +1250,9 @@ function language() { return array(
'USER_MAIL_SUBJECT'=>"Your Password",
'USER_MAIL_TEXT_PREFIX'=>"Your Password for logging in to OpenRat Content Management System is:",
'USER_MAIL_TEXT_SUFFIX'=>"Note this password at a secure place and remove this E-Mail. Your are able to change your password after logging in.",
-'CHARSET'=>"",
-'MENU_TITLE_SEARCH_CONTENT'=>"",
-'MENU_TITLE_SEARCH_PROP'=>"",
+'CHARSET'=>"CHARSET",
+'MENU_TITLE_SEARCH_CONTENT'=>"MENU_TITLE_SEARCH_CONTENT",
+'MENU_TITLE_SEARCH_PROP'=>"Suche nach Eigenschaft",
'MENU_START'=>"Start",
'MENU_START_DESC'=>"Start",
);}
\ No newline at end of file
diff --git a/modules/language/lang-en.php b/modules/language/lang-en.php
@@ -753,8 +753,8 @@ function language() { return array(
'MENU_NAME'=>"Name",
'MENU_OPENID'=>"Open-Id",
'MENU_OTHER'=>"Other",
-'MENU_ORDER'=>"",
-'MENU_ORDER_DESC'=>"",
+'MENU_ORDER'=>"MENU_ORDER",
+'MENU_ORDER_DESC'=>"MENU_ORDER_DESC",
'MENU_PAGE_ACLFORM_DESC'=>"Add a right to this page",
'MENU_PAGE_ACLFORM'=>"Add right",
'MENU_PAGE_CHANGETEMPLATE_DESC'=>"Replace the template of this page",
@@ -834,7 +834,7 @@ function language() { return array(
'MENU_REGISTER_DESC'=>"You must be registered to use this application.",
'MENU_REGISTER'=>"Register",
'MENU_REMOVE'=>"Delete",
-'MENU_REMOVE_DESC'=>"",
+'MENU_REMOVE_DESC'=>"MENU_REMOVE_DESC",
'MENU_RIGHTS'=>"Rights",
'MENU_RIGHTS_DESC'=>"grant or revoke rights",
'MENU_RIGHTS_KEY'=>"X",
@@ -955,8 +955,8 @@ function language() { return array(
'MENU_USERS_DESC'=>"Add or remove users",
'MENU_USERS'=>"Memberships",
'MENU_USERTIMELINE'=>"My changes",
-'MENU_VALUE'=>"",
-'MENU_VALUE_DESC'=>"",
+'MENU_VALUE'=>"MENU_VALUE",
+'MENU_VALUE_DESC'=>"MENU_VALUE_DESC",
'MODE_EDIT'=>"Edit",
'MODE_EDIT_CANCEL'=>"Cancel",
'MODE_EDIT_CANCEL_DESC'=>"Cancel input",
@@ -976,8 +976,8 @@ function language() { return array(
'NOTICE_CONCURRENT_VALUE_CHANGE'=>"While your edit session another user has changed this content at {last_change_time}. Your changes where saved, but you should check the archive if the overwritten content should be merged.",
'NOTICE_COPIED'=>"was copied",
'NOTICE_DATABASE_CONNECTION_ERROR'=>"The connection to the database could not be established.",
-'ERROR_DATABASE_CONNECTION'=>"",
-'ERROR_DATABASE'=>"",
+'ERROR_DATABASE_CONNECTION'=>"ERROR_DATABASE_CONNECTION",
+'ERROR_DATABASE'=>"ERROR_DATABASE",
'NOTICE_DELETED'=>"was deleted",
'NOTICE_DONE'=>"Finished successful",
'NOTICE_ERROR'=>"An error occured",
@@ -1173,13 +1173,13 @@ function language() { return array(
'VALUE'=>"Content",
'WEEK'=>"Week",
'WINDOW_FULLSCREEN'=>"Fullscreen",
-'MENU_STRUCTURE_DESC'=>"",
-'MENU_PREVIEW_DESC'=>"",
+'MENU_STRUCTURE_DESC'=>"MENU_STRUCTURE_DESC",
+'MENU_PREVIEW_DESC'=>"MENU_PREVIEW_DESC",
'MENU_ARCHIVE_DESC'=>"Archive",
-'MENU_USERTIMELINE_DESC'=>"",
-'MENU_OPENID_DESC'=>"",
-'PAGEELEMENT_RELEASED'=>"",
-'PAGEELEMENT_USE_FROM_ARCHIVE'=>"",
+'MENU_USERTIMELINE_DESC'=>"MENU_USERTIMELINE_DESC",
+'MENU_OPENID_DESC'=>"MENU_OPENID_DESC",
+'PAGEELEMENT_RELEASED'=>"PAGEELEMENT_RELEASED",
+'PAGEELEMENT_USE_FROM_ARCHIVE'=>"PAGEELEMENT_USE_FROM_ARCHIVE",
'REMEMBER_ME'=>"Stay logged in",
'MENU_PROGRESS'=>"Tasks",
'MENU_PROGRESS_DESC'=>"Running tasks",
@@ -1194,12 +1194,12 @@ function language() { return array(
'SELECT_LANGUAGE'=>"Select language",
'SELECT_MODEL'=>"Select model",
'PWCHANGE_NOT_ALLOWED'=>"Password change is not available",
-'ERROR_IN_ELEMENT'=>"",
+'ERROR_IN_ELEMENT'=>"ERROR_IN_ELEMENT",
'USER_PASSWORD_EXPIRES'=>"Password expires",
'USER_HOTP'=>"Counter-based 2-factor authentification",
'USER_TOTP'=>"Time-based 2-factor authentification",
-'NOTICE_LOGIN_FAILED_TOKEN_FAILED'=>"",
-'USER_TOKEN'=>"",
+'NOTICE_LOGIN_FAILED_TOKEN_FAILED'=>"NOTICE_LOGIN_FAILED_TOKEN_FAILED",
+'USER_TOKEN'=>"USER_TOKEN",
'ACCESSKEY_WINDOW_ACL'=>"G",
'ELEMENT'=>"Element",
'ELEMENTS'=>"Elements",
@@ -1250,9 +1250,9 @@ function language() { return array(
'USER_MAIL_SUBJECT'=>"Your Password",
'USER_MAIL_TEXT_PREFIX'=>"Your Password for logging in to OpenRat Content Management System is:",
'USER_MAIL_TEXT_SUFFIX'=>"Note this password at a secure place and remove this E-Mail. Your are able to change your password after logging in.",
-'CHARSET'=>"",
-'MENU_TITLE_SEARCH_CONTENT'=>"",
-'MENU_TITLE_SEARCH_PROP'=>"",
+'CHARSET'=>"CHARSET",
+'MENU_TITLE_SEARCH_CONTENT'=>"MENU_TITLE_SEARCH_CONTENT",
+'MENU_TITLE_SEARCH_PROP'=>"MENU_TITLE_SEARCH_PROP",
'MENU_START'=>"Start",
'MENU_START_DESC'=>"Start",
);}
\ No newline at end of file
diff --git a/modules/language/lang-es.php b/modules/language/lang-es.php
@@ -777,8 +777,8 @@ MENU_INDEX_ADMINISTRATION_DESC =",
'MENU_NAME'=>"Name",
'MENU_OPENID'=>"Open-Id",
'MENU_OTHER'=>"Other",
-'MENU_ORDER'=>"",
-'MENU_ORDER_DESC'=>"",
+'MENU_ORDER'=>"MENU_ORDER",
+'MENU_ORDER_DESC'=>"MENU_ORDER_DESC",
'MENU_PAGE_ACLFORM_DESC'=>"Ajouter une droite à cette page",
'MENU_PAGE_ACLFORM'=>"Ajouter bien",
'MENU_PAGE_CHANGETEMPLATE_DESC'=>"Remplacer le calibre de cette page",
@@ -858,7 +858,7 @@ MENU_INDEX_ADMINISTRATION_DESC =",
'MENU_REGISTER_DESC'=>"You must be registered to use this application.",
'MENU_REGISTER'=>"Register",
'MENU_REMOVE'=>"Delete",
-'MENU_REMOVE_DESC'=>"",
+'MENU_REMOVE_DESC'=>"MENU_REMOVE_DESC",
'MENU_RIGHTS'=>"Rights",
'MENU_RIGHTS_DESC'=>"o revocan la demostración de las derechas",
'MENU_RIGHTS_KEY'=>"X",
@@ -979,8 +979,8 @@ MENU_INDEX_ADMINISTRATION_DESC =",
'MENU_USERS_DESC'=>"Ajouter ou enlever les utilisateurs",
'MENU_USERS'=>"Adhésions",
'MENU_USERTIMELINE'=>"My changes",
-'MENU_VALUE'=>"",
-'MENU_VALUE_DESC'=>"",
+'MENU_VALUE'=>"MENU_VALUE",
+'MENU_VALUE_DESC'=>"MENU_VALUE_DESC",
'MODE_EDIT'=>"Edit",
'MODE_EDIT_CANCEL'=>"Cancel",
'MODE_EDIT_CANCEL_DESC'=>"Cancel input",
@@ -1000,8 +1000,8 @@ MENU_INDEX_ADMINISTRATION_DESC =",
'NOTICE_CONCURRENT_VALUE_CHANGE'=>"While your edit session another user has changed this content at {last_change_time}. Your changes where saved, but you should check the archive if the overwritten content should be merged.",
'NOTICE_COPIED'=>"fue copiada",
'NOTICE_DATABASE_CONNECTION_ERROR'=>"The connection to the database could not be established.",
-'ERROR_DATABASE_CONNECTION'=>"",
-'ERROR_DATABASE'=>"",
+'ERROR_DATABASE_CONNECTION'=>"ERROR_DATABASE_CONNECTION",
+'ERROR_DATABASE'=>"ERROR_DATABASE",
'NOTICE_DELETED'=>"fue suprimida",
'NOTICE_DONE'=>"Finished successful",
'NOTICE_ERROR'=>"un error",
@@ -1197,13 +1197,13 @@ MENU_INDEX_ADMINISTRATION_DESC =",
'VALUE'=>"Content",
'WEEK'=>"Week",
'WINDOW_FULLSCREEN'=>"Fullscreen",
-'MENU_STRUCTURE_DESC'=>"",
-'MENU_PREVIEW_DESC'=>"",
+'MENU_STRUCTURE_DESC'=>"MENU_STRUCTURE_DESC",
+'MENU_PREVIEW_DESC'=>"MENU_PREVIEW_DESC",
'MENU_ARCHIVE_DESC'=>"Archive",
-'MENU_USERTIMELINE_DESC'=>"",
-'MENU_OPENID_DESC'=>"",
-'PAGEELEMENT_RELEASED'=>"",
-'PAGEELEMENT_USE_FROM_ARCHIVE'=>"",
+'MENU_USERTIMELINE_DESC'=>"MENU_USERTIMELINE_DESC",
+'MENU_OPENID_DESC'=>"MENU_OPENID_DESC",
+'PAGEELEMENT_RELEASED'=>"PAGEELEMENT_RELEASED",
+'PAGEELEMENT_USE_FROM_ARCHIVE'=>"PAGEELEMENT_USE_FROM_ARCHIVE",
'REMEMBER_ME'=>"Stay logged in",
'MENU_PROGRESS'=>"Tasks",
'MENU_PROGRESS_DESC'=>"Running tasks",
@@ -1218,12 +1218,12 @@ MENU_INDEX_ADMINISTRATION_DESC =",
'SELECT_LANGUAGE'=>"Select language",
'SELECT_MODEL'=>"Select model",
'PWCHANGE_NOT_ALLOWED'=>"Password change is not available",
-'ERROR_IN_ELEMENT'=>"",
+'ERROR_IN_ELEMENT'=>"ERROR_IN_ELEMENT",
'USER_PASSWORD_EXPIRES'=>"Password expires",
'USER_HOTP'=>"Counter-based 2-factor authentification",
'USER_TOTP'=>"Time-based 2-factor authentification",
-'NOTICE_LOGIN_FAILED_TOKEN_FAILED'=>"",
-'USER_TOKEN'=>"",
+'NOTICE_LOGIN_FAILED_TOKEN_FAILED'=>"NOTICE_LOGIN_FAILED_TOKEN_FAILED",
+'USER_TOKEN'=>"USER_TOKEN",
'ACCESSKEY_WINDOW_ACL'=>"G",
'ELEMENT'=>"Elemento",
'ELEMENTS'=>"Elementos",
diff --git a/modules/language/lang-fr.php b/modules/language/lang-fr.php
@@ -753,8 +753,8 @@ function language() { return array(
'MENU_NAME'=>"Name",
'MENU_OPENID'=>"Open-Id",
'MENU_OTHER'=>"Other",
-'MENU_ORDER'=>"",
-'MENU_ORDER_DESC'=>"",
+'MENU_ORDER'=>"MENU_ORDER",
+'MENU_ORDER_DESC'=>"MENU_ORDER_DESC",
'MENU_PAGE_ACLFORM_DESC'=>"Ajouter une droite à cette page",
'MENU_PAGE_ACLFORM'=>"Ajouter bien",
'MENU_PAGE_CHANGETEMPLATE_DESC'=>"Remplacer le calibre de cette page",
@@ -834,7 +834,7 @@ function language() { return array(
'MENU_REGISTER_DESC'=>"You must be registered to use this application.",
'MENU_REGISTER'=>"Register",
'MENU_REMOVE'=>"Delete",
-'MENU_REMOVE_DESC'=>"",
+'MENU_REMOVE_DESC'=>"MENU_REMOVE_DESC",
'MENU_RIGHTS'=>"Droites",
'MENU_RIGHTS_DESC'=>"accorder ou retirer les droites",
'MENU_RIGHTS_KEY'=>"X",
@@ -955,8 +955,8 @@ function language() { return array(
'MENU_USERS_DESC'=>"Ajouter ou enlever les utilisateurs",
'MENU_USERS'=>"Adhésions",
'MENU_USERTIMELINE'=>"My changes",
-'MENU_VALUE'=>"",
-'MENU_VALUE_DESC'=>"",
+'MENU_VALUE'=>"MENU_VALUE",
+'MENU_VALUE_DESC'=>"MENU_VALUE_DESC",
'MODE_EDIT'=>"Edit",
'MODE_EDIT_CANCEL'=>"Cancel",
'MODE_EDIT_CANCEL_DESC'=>"Cancel input",
@@ -976,8 +976,8 @@ function language() { return array(
'NOTICE_CONCURRENT_VALUE_CHANGE'=>"While your edit session another user has changed this content at {last_change_time}. Your changes where saved, but you should check the archive if the overwritten content should be merged.",
'NOTICE_COPIED'=>"a été copié",
'NOTICE_DATABASE_CONNECTION_ERROR'=>"The connection to the database could not be established.",
-'ERROR_DATABASE_CONNECTION'=>"",
-'ERROR_DATABASE'=>"",
+'ERROR_DATABASE_CONNECTION'=>"ERROR_DATABASE_CONNECTION",
+'ERROR_DATABASE'=>"ERROR_DATABASE",
'NOTICE_DELETED'=>"a été supprimé",
'NOTICE_DONE'=>"Finished successful",
'NOTICE_ERROR'=>"Une erreur s'est produite",
@@ -1173,13 +1173,13 @@ function language() { return array(
'VALUE'=>"Content",
'WEEK'=>"Week",
'WINDOW_FULLSCREEN'=>"Fullscreen",
-'MENU_STRUCTURE_DESC'=>"",
-'MENU_PREVIEW_DESC'=>"",
+'MENU_STRUCTURE_DESC'=>"MENU_STRUCTURE_DESC",
+'MENU_PREVIEW_DESC'=>"MENU_PREVIEW_DESC",
'MENU_ARCHIVE_DESC'=>"Archive",
-'MENU_USERTIMELINE_DESC'=>"",
-'MENU_OPENID_DESC'=>"",
-'PAGEELEMENT_RELEASED'=>"",
-'PAGEELEMENT_USE_FROM_ARCHIVE'=>"",
+'MENU_USERTIMELINE_DESC'=>"MENU_USERTIMELINE_DESC",
+'MENU_OPENID_DESC'=>"MENU_OPENID_DESC",
+'PAGEELEMENT_RELEASED'=>"PAGEELEMENT_RELEASED",
+'PAGEELEMENT_USE_FROM_ARCHIVE'=>"PAGEELEMENT_USE_FROM_ARCHIVE",
'REMEMBER_ME'=>"Stay logged in",
'MENU_PROGRESS'=>"Tasks",
'MENU_PROGRESS_DESC'=>"Running tasks",
@@ -1194,12 +1194,12 @@ function language() { return array(
'SELECT_LANGUAGE'=>"Select language",
'SELECT_MODEL'=>"Select model",
'PWCHANGE_NOT_ALLOWED'=>"Password change is not available",
-'ERROR_IN_ELEMENT'=>"",
+'ERROR_IN_ELEMENT'=>"ERROR_IN_ELEMENT",
'USER_PASSWORD_EXPIRES'=>"Password expires",
'USER_HOTP'=>"Counter-based 2-factor authentification",
'USER_TOTP'=>"Time-based 2-factor authentification",
-'NOTICE_LOGIN_FAILED_TOKEN_FAILED'=>"",
-'USER_TOKEN'=>"",
+'NOTICE_LOGIN_FAILED_TOKEN_FAILED'=>"NOTICE_LOGIN_FAILED_TOKEN_FAILED",
+'USER_TOKEN'=>"USER_TOKEN",
'ACCESSKEY_WINDOW_ACL'=>"G",
'ELEMENT'=>"Élément",
'ELEMENTS'=>"Éléments",
diff --git a/modules/language/lang-it.php b/modules/language/lang-it.php
@@ -753,8 +753,8 @@ function language() { return array(
'MENU_NAME'=>"Name",
'MENU_OPENID'=>"Open-Id",
'MENU_OTHER'=>"Other",
-'MENU_ORDER'=>"",
-'MENU_ORDER_DESC'=>"",
+'MENU_ORDER'=>"MENU_ORDER",
+'MENU_ORDER_DESC'=>"MENU_ORDER_DESC",
'MENU_PAGE_ACLFORM_DESC'=>"agrega una derecha a esta página",
'MENU_PAGE_ACLFORM'=>"agrega a la derecha",
'MENU_PAGE_CHANGETEMPLATE_DESC'=>"substituye la plantilla de esta página",
@@ -834,7 +834,7 @@ function language() { return array(
'MENU_REGISTER_DESC'=>"You must be registered to use this application.",
'MENU_REGISTER'=>"Register",
'MENU_REMOVE'=>"Delete",
-'MENU_REMOVE_DESC'=>"",
+'MENU_REMOVE_DESC'=>"MENU_REMOVE_DESC",
'MENU_RIGHTS'=>"Rights",
'MENU_RIGHTS_DESC'=>"o revocano l'esposizione di diritti",
'MENU_RIGHTS_KEY'=>"X",
@@ -955,8 +955,8 @@ function language() { return array(
'MENU_USERS_DESC'=>"aggiungono o rimuovono gli utenti",
'MENU_USERS'=>"Gli insiemi dei membri",
'MENU_USERTIMELINE'=>"My changes",
-'MENU_VALUE'=>"",
-'MENU_VALUE_DESC'=>"",
+'MENU_VALUE'=>"MENU_VALUE",
+'MENU_VALUE_DESC'=>"MENU_VALUE_DESC",
'MODE_EDIT'=>"Edit",
'MODE_EDIT_CANCEL'=>"Cancel",
'MODE_EDIT_CANCEL_DESC'=>"Cancel input",
@@ -976,8 +976,8 @@ function language() { return array(
'NOTICE_CONCURRENT_VALUE_CHANGE'=>"While your edit session another user has changed this content at {last_change_time}. Your changes where saved, but you should check the archive if the overwritten content should be merged.",
'NOTICE_COPIED'=>"è stata copiata",
'NOTICE_DATABASE_CONNECTION_ERROR'=>"The connection to the database could not be established.",
-'ERROR_DATABASE_CONNECTION'=>"",
-'ERROR_DATABASE'=>"",
+'ERROR_DATABASE_CONNECTION'=>"ERROR_DATABASE_CONNECTION",
+'ERROR_DATABASE'=>"ERROR_DATABASE",
'NOTICE_DELETED'=>"è stata cancellata",
'NOTICE_DONE'=>"Finished successful",
'NOTICE_ERROR'=>"un errore ha accaduto",
@@ -1173,13 +1173,13 @@ function language() { return array(
'VALUE'=>"Content",
'WEEK'=>"Week",
'WINDOW_FULLSCREEN'=>"Fullscreen",
-'MENU_STRUCTURE_DESC'=>"",
-'MENU_PREVIEW_DESC'=>"",
+'MENU_STRUCTURE_DESC'=>"MENU_STRUCTURE_DESC",
+'MENU_PREVIEW_DESC'=>"MENU_PREVIEW_DESC",
'MENU_ARCHIVE_DESC'=>"Archive",
-'MENU_USERTIMELINE_DESC'=>"",
-'MENU_OPENID_DESC'=>"",
-'PAGEELEMENT_RELEASED'=>"",
-'PAGEELEMENT_USE_FROM_ARCHIVE'=>"",
+'MENU_USERTIMELINE_DESC'=>"MENU_USERTIMELINE_DESC",
+'MENU_OPENID_DESC'=>"MENU_OPENID_DESC",
+'PAGEELEMENT_RELEASED'=>"PAGEELEMENT_RELEASED",
+'PAGEELEMENT_USE_FROM_ARCHIVE'=>"PAGEELEMENT_USE_FROM_ARCHIVE",
'REMEMBER_ME'=>"Stay logged in",
'MENU_PROGRESS'=>"Tasks",
'MENU_PROGRESS_DESC'=>"Running tasks",
@@ -1194,12 +1194,12 @@ function language() { return array(
'SELECT_LANGUAGE'=>"Select language",
'SELECT_MODEL'=>"Select model",
'PWCHANGE_NOT_ALLOWED'=>"Password change is not available",
-'ERROR_IN_ELEMENT'=>"",
+'ERROR_IN_ELEMENT'=>"ERROR_IN_ELEMENT",
'USER_PASSWORD_EXPIRES'=>"Password expires",
'USER_HOTP'=>"Counter-based 2-factor authentification",
'USER_TOTP'=>"Time-based 2-factor authentification",
-'NOTICE_LOGIN_FAILED_TOKEN_FAILED'=>"",
-'USER_TOKEN'=>"",
+'NOTICE_LOGIN_FAILED_TOKEN_FAILED'=>"NOTICE_LOGIN_FAILED_TOKEN_FAILED",
+'USER_TOKEN'=>"USER_TOKEN",
'ACCESSKEY_WINDOW_ACL'=>"G",
'ELEMENT'=>"Element",
'ELEMENTS'=>"Elements",
diff --git a/modules/language/lang-ru.php b/modules/language/lang-ru.php
@@ -753,8 +753,8 @@ function language() { return array(
'MENU_NAME'=>"Name",
'MENU_OPENID'=>"Open-Id",
'MENU_OTHER'=>"Other",
-'MENU_ORDER'=>"",
-'MENU_ORDER_DESC'=>"",
+'MENU_ORDER'=>"MENU_ORDER",
+'MENU_ORDER_DESC'=>"MENU_ORDER_DESC",
'MENU_PAGE_ACLFORM_DESC'=>"Добавить права на эту страницу Заменить",
'MENU_PAGE_ACLFORM'=>"Добавить Право",
'MENU_PAGE_CHANGETEMPLATE_DESC'=>"шаблоне заменить шаблон на этой странице Редактировать",
@@ -834,7 +834,7 @@ function language() { return array(
'MENU_REGISTER_DESC'=>"You must be registered to use this application.",
'MENU_REGISTER'=>"Register",
'MENU_REMOVE'=>"Delete",
-'MENU_REMOVE_DESC'=>"",
+'MENU_REMOVE_DESC'=>"MENU_REMOVE_DESC",
'MENU_RIGHTS'=>"Rights",
'MENU_RIGHTS_DESC'=>"выдавать или отзывать человека X",
'MENU_RIGHTS_KEY'=>"X",
@@ -955,8 +955,8 @@ function language() { return array(
'MENU_USERS_DESC'=>"Членство Добавить или удалить пользователей Добавить",
'MENU_USERS'=>"Memberships",
'MENU_USERTIMELINE'=>"My changes",
-'MENU_VALUE'=>"",
-'MENU_VALUE_DESC'=>"",
+'MENU_VALUE'=>"MENU_VALUE",
+'MENU_VALUE_DESC'=>"MENU_VALUE_DESC",
'MODE_EDIT'=>"Edit",
'MODE_EDIT_CANCEL'=>"Cancel",
'MODE_EDIT_CANCEL_DESC'=>"Cancel input",
@@ -976,8 +976,8 @@ function language() { return array(
'NOTICE_CONCURRENT_VALUE_CHANGE'=>"While your edit session another user has changed this content at {last_change_time}. Your changes where saved, but you should check the archive if the overwritten content should be merged.",
'NOTICE_COPIED'=>"копирования",
'NOTICE_DATABASE_CONNECTION_ERROR'=>"The connection to the database could not be established.",
-'ERROR_DATABASE_CONNECTION'=>"",
-'ERROR_DATABASE'=>"",
+'ERROR_DATABASE_CONNECTION'=>"ERROR_DATABASE_CONNECTION",
+'ERROR_DATABASE'=>"ERROR_DATABASE",
'NOTICE_DELETED'=>"удалена",
'NOTICE_DONE'=>"Finished successful",
'NOTICE_ERROR'=>"Произошла ошибка",
@@ -1173,13 +1173,13 @@ function language() { return array(
'VALUE'=>"Content",
'WEEK'=>"Week",
'WINDOW_FULLSCREEN'=>"Fullscreen",
-'MENU_STRUCTURE_DESC'=>"",
-'MENU_PREVIEW_DESC'=>"",
+'MENU_STRUCTURE_DESC'=>"MENU_STRUCTURE_DESC",
+'MENU_PREVIEW_DESC'=>"MENU_PREVIEW_DESC",
'MENU_ARCHIVE_DESC'=>"Archive",
-'MENU_USERTIMELINE_DESC'=>"",
-'MENU_OPENID_DESC'=>"",
-'PAGEELEMENT_RELEASED'=>"",
-'PAGEELEMENT_USE_FROM_ARCHIVE'=>"",
+'MENU_USERTIMELINE_DESC'=>"MENU_USERTIMELINE_DESC",
+'MENU_OPENID_DESC'=>"MENU_OPENID_DESC",
+'PAGEELEMENT_RELEASED'=>"PAGEELEMENT_RELEASED",
+'PAGEELEMENT_USE_FROM_ARCHIVE'=>"PAGEELEMENT_USE_FROM_ARCHIVE",
'REMEMBER_ME'=>"Stay logged in",
'MENU_PROGRESS'=>"Tasks",
'MENU_PROGRESS_DESC'=>"Running tasks",
@@ -1194,12 +1194,12 @@ function language() { return array(
'SELECT_LANGUAGE'=>"Select language",
'SELECT_MODEL'=>"Select model",
'PWCHANGE_NOT_ALLOWED'=>"Password change is not available",
-'ERROR_IN_ELEMENT'=>"",
+'ERROR_IN_ELEMENT'=>"ERROR_IN_ELEMENT",
'USER_PASSWORD_EXPIRES'=>"Password expires",
'USER_HOTP'=>"Counter-based 2-factor authentification",
'USER_TOTP'=>"Time-based 2-factor authentification",
-'NOTICE_LOGIN_FAILED_TOKEN_FAILED'=>"",
-'USER_TOKEN'=>"",
+'NOTICE_LOGIN_FAILED_TOKEN_FAILED'=>"NOTICE_LOGIN_FAILED_TOKEN_FAILED",
+'USER_TOKEN'=>"USER_TOKEN",
'ACCESSKEY_WINDOW_ACL'=>"G",
'ELEMENT'=>"Суббота Элемент",
'ELEMENTS'=>"Elements",
diff --git a/modules/language/language.yml b/modules/language/language.yml
@@ -6038,6 +6038,7 @@ MENU_TITLE_SEARCH_CONTENT:
it: Search for value
ru: Search for value
MENU_TITLE_SEARCH_PROP:
+ de: Suche nach Eigenschaft
es: Search for property
fr: Search for property
it: Search for property