向Joomla组件javascript添加语言常量
我的组件包括一个java脚本文件:向Joomla组件javascript添加语言常量,joomla,joomla2.5,Joomla,Joomla2.5,我的组件包括一个java脚本文件: $doc->addScript("/components/com_cam/js/cam.js"); 我有几个客户端消息要添加语言常量,例如 <?php echo JText::_('COM_CAM_SEND_LABEL'); ?> 这方面的最佳做法是什么?制作一个帮助函数来生成验证消息,并将其添加到标题中 类似于bellow的东西,只需编辑它以满足您的需要 $messages = '(function ($) { $.extend
$doc->addScript("/components/com_cam/js/cam.js");
我有几个客户端消息要添加语言常量,例如
<?php echo JText::_('COM_CAM_SEND_LABEL'); ?>
这方面的最佳做法是什么?制作一个帮助函数来生成验证消息,并将其添加到
标题中
类似于bellow的东西,只需编辑它以满足您的需要
$messages = '(function ($) {
$.extend($.validator.messages, {
cam: {
required: "' . JText::_('COM_CAM_VALIDATION_REQUIRED') . '",
minlength: jQuery.format("' . JText::_('COM_CAM_VALIDATION_MINIMUM') . '"),
maxlength: jQuery.format("' . JText::_('COM_CAM_VALIDATION_MAXIMUM') . '")
}
});
}(jQuery));';
$doc = JFactory::getDocument();
$doc->addScriptDeclaration($messages);
在乔姆拉!2.5(我相信从1.6开始)增加了对向全局array()
添加语言键的支持,以便Javascript可以访问它们
首先,在PHP中可以调用JText::script('COM_MYCOMPONENT_MSG1')代码>用于需要在Javascript中翻译的每个字符串
您可以在Javascript中使用内置的Joomla.JText.(('COM\u MYCOMPONENT\u MSG1')
来检索它
当您达到需要转换大量字符串的程度时,您可能会发现在运行时解析javascript文件更容易(在高效的yada-yada中,但对于后端管理屏幕来说,这没什么大不了的)
/**
*解析javascript文件以查找JText键,然后加载它们以备使用。
*
*@param string$jsFile指向javascript文件的路径。
*
*@returnbool
*/
公共静态函数loadJSLanguageKeys($jsFile)
{
如果(isset($jsFile))
{
$jsFile=JPATH_站点。$jsFile;
}
其他的
{
返回false;
}
如果($jsContents=file\u get\u contents($jsFile))
{
$languageKeys=array();
preg\u match\u all('/Joomla\.JText\.\.(\'(.*?)\)?/',$jsContents,$languageKeys);
$languageKeys=$languageKeys[1];
foreach($lkey形式的语言键)
{
JText::script($lkey);
}
}
}
谢谢!我刚用了你的第一个解决方案,效果很好。
$messages = '(function ($) {
$.extend($.validator.messages, {
cam: {
required: "' . JText::_('COM_CAM_VALIDATION_REQUIRED') . '",
minlength: jQuery.format("' . JText::_('COM_CAM_VALIDATION_MINIMUM') . '"),
maxlength: jQuery.format("' . JText::_('COM_CAM_VALIDATION_MAXIMUM') . '")
}
});
}(jQuery));';
$doc = JFactory::getDocument();
$doc->addScriptDeclaration($messages);