Dynamic language loading

This allows dynamic language loading. Could however conflict with the
language loading for the navigation module?
This commit is contained in:
Dennis Eichhorn 2016-07-05 10:29:05 +02:00
parent ebafbe059a
commit 6c570fb63c
2 changed files with 11 additions and 6 deletions

View File

@ -118,7 +118,7 @@ class L11nManager
* @since 1.0.0 * @since 1.0.0
* @author Dennis Eichhorn <d.eichhorn@oms.com> * @author Dennis Eichhorn <d.eichhorn@oms.com>
*/ */
public function getLanguage(string $language, string $module = null) : array public function getModuleLanguage(string $language, string $module = null) : array
{ {
if (!isset($module) && isset($this->language[$language])) { if (!isset($module) && isset($this->language[$language])) {
return $this->language[$language]; return $this->language[$language];
@ -144,11 +144,16 @@ class L11nManager
public function getText(string $code, string $module, string $translation) public function getText(string $code, string $module, string $translation)
{ {
if (!isset($this->language[$code][$module][$translation])) { if (!isset($this->language[$code][$module][$translation])) {
$this->logger->warning(FileLogger::MSG_FULL, [ $class = '\Modules\\' . $module . '\\Controller';
'message' => 'Undefined translation for \'' . $code . '/' . $module . '/' . $translation . '\'.' $this->loadLanguage($code, $module, $class::getLocalization($code, $module));
]);
return 'ERROR'; if (!isset($this->language[$code][$module][$translation])) {
$this->logger->warning(FileLogger::MSG_FULL, [
'message' => 'Undefined translation for \'' . $code . '/' . $module . '/' . $translation . '\'.'
]);
return 'ERROR';
}
} }
return $this->language[$code][$module][$translation]; return $this->language[$code][$module][$translation];

View File

@ -128,7 +128,7 @@ abstract class ModuleAbstract
* @since 1.0.0 * @since 1.0.0
* @author Dennis Eichhorn <d.eichhorn@oms.com> * @author Dennis Eichhorn <d.eichhorn@oms.com>
*/ */
public function getLocalization(string $language, string $destination) : array public static function getLocalization(string $language, string $destination) : array
{ {
$lang = []; $lang = [];
if (($path = realpath($oldPath = __DIR__ . '/../../Modules/' . static::MODULE_NAME . '/Theme/' . $destination . '/Lang/' . $language . '.lang.php')) !== false) { if (($path = realpath($oldPath = __DIR__ . '/../../Modules/' . static::MODULE_NAME . '/Theme/' . $destination . '/Lang/' . $language . '.lang.php')) !== false) {