Přihlásit se

Joomla 5.0.1 a 4.4.1 bezpečnostní vydání (29 lis 2023)

Joomla 5.0.1 a 4.4.1 je nyní k dispozici. Jedná se o bezpečnostní vydání pro Joomla 4.x. a 5.x.

jazyková proměnná v javascriptu

28. dub 2021 00:22 #144258
jazyková proměnná v javascriptu od Ernst
Joomla Expert
zobrazuji jazykovou proměnnou v js takto:
Code:
Joomla.JText._( 'MOJE_PROMENNA')

lze do toho zahrnout proměnnou, tedy udělat to obdobně jako v php
Code:
JText::sprintf( 'MOJE_PROMENNA',$prom)

Lze to vůbec?

28. dub 2021 02:40 #144259
Odpověď od Cony
Moderátor
Javascript ani Joomla.JText nic jako sprintf nezná. Nejjednodušší řešení je použít replace
Code:
Joomla.JText._( 'MOJE_PROMENNA').replace('%s', promenna);
popř. pokud to je jazyková konstanta jen pro javascript a ne pro PHP, použít něco jiného než %s.

Případně existuje JS verze sprintf , ale to mi přijde trochu s kanónem na vrabce...
Poděkovali: Ernst

28. dub 2021 07:21 - 28. dub 2021 07:21 #144260
Odpověď od Rudolf
Joomla Expert
Pro zobrazení Jazykové proměnné v JS existují Joomla pravidla dle dokumentace (včetně %s characters):
docs.joomla.org/J3.x:Adding_JavaScript_and_CSS_to_the_page

Passing language strings to Javascript
There are cases when you may want to output an error message in your JavaScript code and want to use the Joomla mechanism of language strings. You could manage this by using addScriptOptions to pass down each language string you need, but Joomla provides a more succint solution. To pass a language string to JavaScript do in your PHP code, for example,

JText::script('JLIB_APPLICATION_ERROR_ACCESS_FORBIDDEN'); Then in your JavaScript code you can do:

var message = Joomla.JText._('JLIB_APPLICATION_ERROR_ACCESS_FORBIDDEN'); to obtain in the user's language the text message associated with the language constant. Obviously certain language strings have embedded %s characters, so in your JavaScript code you will have to handle that, eg using an external JavaScript sprintf library or string replace, etc.

MiniJoomla! - www.minijoomla.org - eshop s rozšířením Joomla/VM
Email Manager - aplikace na správu šablon emailů pro VirtueMart
Easy Feeder - aplikace na generování XML/CSV feedů a napojení na ERP pro VM
PragueClassicconcert - portál pro prodej vstupenek na systému Joomla

28. dub 2021 09:56 #144261
Odpověď od Ernst
Joomla Expert
díky moc, zkoušel jsem také js funkci sprintf, ale jinou a asi nebyla funkční a to replace mě nenapadlo.

Fakt se to řešení nedalo ani vygooglit :) :)

28. dub 2021 10:13 #144262
Odpověď od Rudolf
Joomla Expert

eg using an external JavaScript sprintf library or string replace, etc.


Google joomla language constant in javascript
4 odkaz

MiniJoomla! - www.minijoomla.org - eshop s rozšířením Joomla/VM
Email Manager - aplikace na správu šablon emailů pro VirtueMart
Easy Feeder - aplikace na generování XML/CSV feedů a napojení na ERP pro VM
PragueClassicconcert - portál pro prodej vstupenek na systému Joomla

28. dub 2021 10:39 - 28. dub 2021 10:52 #144263
Odpověď od H13
Admin
Možná trochu jiné řešení, ale já občas používám i pro jazyk stejný systém jako pro všechny proměnné.

Tedy v případě, že proměnnou mám v PHP a potřebuji dostat do JS PHP proměnnou.

Příklad:

PHP:
Code:
JFactory::getDocument()->addScriptOptions('phLang', array( 'COM_PHOCACART_CLOSE' => JText::_('COM_PHOCACART_CLOSE') . $klidneNejakaPromenAtd) ); JFactory::getDocument()->addScriptOptions('phVars', array('url' => JURI::base(true).'/index.php?option=com_phocacart&format=json&'. JSession::getFormToken().'=1'));

Javascript:
Code:
function nejakaJSFunkce() { var phVars = Joomla.getOptions('phVars'); var phLang = Joomla.getOptions('phLang');

V PHP si jazykovou proměnnou nebo normální proměnnou sestavím dynamicky podle potřeb a tímto způsobem přesunu z PHP do Javascriptu, pak k ní normálně přistupuju
Code:
alert(phVars['url']); alert(phLang['COM_PHOCACART_CLOSE']);

Tedy snažím se vyhnout sestavování v JS a pokud to jde sestavit v PHP, sestavím v PHP a pošlu do JS jako kompletní sestavený string. Samozřejmě použitelné jen, pokud proměnná není vyloženě JS proměnná sestavovaná v JS.

Phoca Cart - www.phoca.cz/phocacart - e-shop, e-commerce
Phoca Gallery - www.phoca.cz/phocagallery - obrázková galerie
Phoca Download - www.phoca.cz/phocadownload - stahování souborů
Phoca Guestbook - www.phoca.cz/phocaguestbook - guestbook
Poděkovali: Ernst

Powered by Fórum