From d15618cde4d16e0f06e0600979017424d21b42c3 Mon Sep 17 00:00:00 2001 From: Clemens Schwaighofer Date: Tue, 4 Oct 2022 17:35:46 +0900 Subject: [PATCH] Add JS_TRANSLATE file to smart template flow --- .../20220906_readme.md | 1 - www/layout/admin/javascript/edit.jq.js | 5 +-- www/lib/CoreLibs/Template/SmartyExtend.php | 36 ++++++++++++++++--- 3 files changed, 35 insertions(+), 7 deletions(-) diff --git a/4dev/update/20220906_edit_acl_update/20220906_readme.md b/4dev/update/20220906_edit_acl_update/20220906_readme.md index e62d6a05..3c6afb8b 100644 --- a/4dev/update/20220906_edit_acl_update/20220906_readme.md +++ b/4dev/update/20220906_edit_acl_update/20220906_readme.md @@ -19,5 +19,4 @@ lib/CoreLibs/DB/Extended/ArrayIO.php lib/CoreLibs/Convert/MimeEncode.php lib/CoreLibs/Create/Email.php lib/CoreLibs/Output/Form/Generate.php - ``` diff --git a/www/layout/admin/javascript/edit.jq.js b/www/layout/admin/javascript/edit.jq.js index 0f983fb7..c8b4a508 100644 --- a/www/layout/admin/javascript/edit.jq.js +++ b/www/layout/admin/javascript/edit.jq.js @@ -1329,11 +1329,12 @@ function createLoginRow(login_string, header_id = 'mainHeader') // eslint-disabl } // clear out just in case for first entry // fill with div name & login/logout button - $('#loginRow').html(phfo(cel('div', '', login_string))); + $('#loginRow').html(phfo(cel('div', 'loginRow-name', login_string))); + $('#loginRow').append(phfo(cel('div', 'loginRow-info', ''))); $('#loginRow').append(phfo( aelx( // outer div - cel('div'), + cel('div', 'loginRow-logout'), // inner element cel('input', 'logout', '', [], { value: __('Logout'), diff --git a/www/lib/CoreLibs/Template/SmartyExtend.php b/www/lib/CoreLibs/Template/SmartyExtend.php index ee42ecf8..24443a75 100644 --- a/www/lib/CoreLibs/Template/SmartyExtend.php +++ b/www/lib/CoreLibs/Template/SmartyExtend.php @@ -105,6 +105,8 @@ class SmartyExtend extends \Smarty public $CSS_TEMPLATE_NAME; /** @var string|null */ public $TEMPLATE_TRANSLATE; + /** @var string|null */ + public $JS_TRANSLATE; // core group /** @var string */ public $JS_CORE_TEMPLATE_NAME; @@ -317,14 +319,14 @@ class SmartyExtend extends \Smarty } // javascript translate data as template for auto translate if (empty($this->TEMPLATE_TRANSLATE)) { - $this->TEMPLATE_TRANSLATE = 'jsTranslate_' + $this->TEMPLATE_TRANSLATE = 'jsTranslate-' . $this->locale_set . '.' . $this->encoding . '.tpl'; } else { // we assume we have some fixed set - // we must add _<$this->lang> + // we must add _. // if .tpl, put before .tpl - // if not .tpl, add _<$this->lang>.tpl + // if not .tpl, add _..tpl if (strpos($this->TEMPLATE_TRANSLATE, '.tpl')) { $this->TEMPLATE_TRANSLATE = str_replace( '.tpl', @@ -332,7 +334,7 @@ class SmartyExtend extends \Smarty $this->TEMPLATE_TRANSLATE ); } else { - $this->TEMPLATE_TRANSLATE .= '_' + $this->TEMPLATE_TRANSLATE .= '-' . $this->locale_set . '.' . $this->encoding . '.tpl'; } @@ -341,6 +343,31 @@ class SmartyExtend extends \Smarty if (!file_exists($this->getTemplateDir()[0] . DIRECTORY_SEPARATOR . $this->TEMPLATE_TRANSLATE)) { $this->TEMPLATE_TRANSLATE = null; } + if (empty($this->JS_TRANSLATE)) { + $this->JS_TRANSLATE = 'translate-' + . $this->locale_set . '.' . $this->encoding . '.js'; + } else { + // we assume we have some fixed set + // we must add _. + // if .js, put before .js + // if not .js, add _..js + if (strpos($this->JS_TRANSLATE, '.js')) { + $this->JS_TRANSLATE = str_replace( + '.js', + '-' . $this->locale_set . '.' . $this->encoding . '.js', + $this->JS_TRANSLATE + ); + } else { + $this->JS_TRANSLATE .= '-' + . $this->locale_set . '.' . $this->encoding + . '.js'; + } + } + if (!file_exists($this->JAVASCRIPT . $this->JS_TRANSLATE)) { + $this->JS_TRANSLATE = null; + } else { + $this->JS_TRANSLATE = $this->JAVASCRIPT . $this->JS_TRANSLATE; + } } /** @@ -469,6 +496,7 @@ class SmartyExtend extends \Smarty $this->DATA['TEMPLATE_NAME'] = $this->TEMPLATE_NAME; $this->DATA['CONTENT_INCLUDE'] = $this->CONTENT_INCLUDE; $this->DATA['TEMPLATE_TRANSLATE'] = $this->TEMPLATE_TRANSLATE ?? null; + $this->DATA['JS_TRANSLATE'] = $this->JS_TRANSLATE ?? null; $this->DATA['PAGE_FILE_NAME'] = str_replace('.php', '', $this->page_name) . '.tpl'; // render page $this->renderSmarty();