diff options
author | rvelices <rv-github@modusoptimus.com> | 2013-06-23 18:39:31 +0000 |
---|---|---|
committer | rvelices <rv-github@modusoptimus.com> | 2013-06-23 18:39:31 +0000 |
commit | b93085c7fbd1ee625354f612b3af62d2dcb90402 (patch) | |
tree | 42b33391f9ef7f36836934fb4afa44c6555b91d6 | |
parent | 67d736e3fd0399399e554c53503a2b24f50e5a70 (diff) |
Smarty3 added 'translate_dec' compilermodifier (generated code is a lot better than $pwg->l10n_dec)
git-svn-id: http://piwigo.org/svn/trunk@23476 68402e56-0260-453c-a942-63ccdbb3a9ee
Diffstat (limited to '')
-rw-r--r-- | admin/themes/default/template/tags.tpl | 2 | ||||
-rw-r--r-- | include/template.class.php | 36 | ||||
-rw-r--r-- | themes/default/template/menubar_categories.tpl | 2 | ||||
-rw-r--r-- | themes/default/template/menubar_tags.tpl | 2 | ||||
-rw-r--r-- | themes/default/template/month_calendar.tpl | 4 | ||||
-rw-r--r-- | themes/default/template/picture.tpl | 9 | ||||
-rw-r--r-- | themes/default/template/tags.tpl | 4 |
7 files changed, 41 insertions, 18 deletions
diff --git a/admin/themes/default/template/tags.tpl b/admin/themes/default/template/tags.tpl index aabd36b20..09d000c86 100644 --- a/admin/themes/default/template/tags.tpl +++ b/admin/themes/default/template/tags.tpl @@ -150,7 +150,7 @@ $("#searchInput").on( "keydown", function() { {/if} <ul class="tagSelection"> {foreach from=$all_tags item=tag} - <li>{capture name='showInfo'}<b>{$tag.name}</b> ({$pwg->l10n_dec('%d photo', '%d photos', $tag.counter)}) <br> <a href="{$tag.U_VIEW}">{'View in gallery'|@translate}</a> | <a href="{$tag.U_EDIT}">{'Manage photos'|@translate}</a>{if !empty($tag.alt_names)}<br>{$tag.alt_names}{/if}{/capture} + <li>{capture name='showInfo'}<b>{$tag.name}</b> ({$tag.counter|@translate_dec:'%d photo':'%d photos'}) <br> <a href="{$tag.U_VIEW}">{'View in gallery'|@translate}</a> | <a href="{$tag.U_EDIT}">{'Manage photos'|@translate}</a>{if !empty($tag.alt_names)}<br>{$tag.alt_names}{/if}{/capture} <a class="icon-info-circled-1 showInfo" title="{$smarty.capture.showInfo|@htmlspecialchars}"></a> <label> <input type="checkbox" name="tags[]" value="{$tag.id}"> {$tag.name} diff --git a/include/template.class.php b/include/template.class.php index 56a32b2ba..82d0c1f05 100644 --- a/include/template.class.php +++ b/include/template.class.php @@ -55,6 +55,8 @@ class Template { { global $conf, $lang_info; + SmartyException::$escape = false; + $this->scriptLoader = new ScriptLoader; $this->smarty = new SmartyBC; $this->smarty->debugging = $conf['debug_template']; @@ -91,6 +93,7 @@ class Template { $this->smarty->assign( 'pwg', new PwgTemplateAdapter() ); $this->smarty->registerPlugin('modifiercompiler', 'translate', array('Template', 'modcompiler_translate') ); + $this->smarty->registerPlugin('modifiercompiler', 'translate_dec', array('Template', 'modcompiler_translate_dec') ); $this->smarty->registerPlugin('modifier', 'explode', array('Template', 'mod_explode') ); $this->smarty->registerPlugin( 'modifier', 'get_extent', array($this, 'get_extent') ); $this->smarty->registerPlugin('block', 'html_head', array($this, 'block_html_head') ); @@ -331,7 +334,7 @@ class Template { /** see smarty append http://www.smarty.net/manual/en/api.clear_assign.php */ function clear_assign($tpl_var) { - $this->smarty->clear_assign( $tpl_var ); + $this->smarty->clearAssign( $tpl_var ); } /** see smarty get_template_vars http://www.smarty.net/manual/en/api.get_template_vars.php */ @@ -361,7 +364,7 @@ class Template { global $conf, $lang_info; if ( $conf['compiled_template_cache_language'] and isset($lang_info['code']) ) { - $this->smarty->compile_id .= '.'.$lang_info['code']; + $this->smarty->compile_id .= '_'.$lang_info['code']; } $v = $this->smarty->fetch($this->files[$handle]); @@ -513,6 +516,31 @@ class Template { return 'l10n('.$params[0].')'; } + static function modcompiler_translate_dec($params) + { + global $conf, $lang, $lang_info; + if ( $conf['compiled_template_cache_language']) + { + $ret = 'sprintf('; + if ($lang_info['zero_plural']) + { + $ret .= '($tmp=('.$params[0].'))>1||$tmp==0'; + } + else + { + $ret .= '('.$params[0].')>1'; + } + $ret .= '?'; + $ret .= self::modcompiler_translate( array($params[2]) ); + $ret .= ':'; + $ret .= self::modcompiler_translate( array($params[1]) ); + $ret .= ','.$params[0]; + $ret .= ')'; + return $ret; + } + return 'l10n_dec('.$params[1].','.$params[2].','.$params[0].')'; + } + /** * explode variable modifier - similar to php explode * 'Yes;No'|@explode:';' -> array('Yes', 'No') @@ -769,7 +797,7 @@ var s,after = document.getElementsByTagName(\'script\')[document.getElementsByTa { list($type, $callback) = $filter; $compile_id .= $type.( is_array($callback) ? implode('', $callback) : $callback ); - call_user_func(array($this->smarty, 'register_'.$type), $callback); + $this->smarty->registerFilter($type, $callback); } } $this->smarty->compile_id .= '.'.base_convert(crc32($compile_id), 10, 36); @@ -785,7 +813,7 @@ var s,after = document.getElementsByTagName(\'script\')[document.getElementsByTa foreach ($filters as $filter) { list($type, $callback) = $filter; - call_user_func(array($this->smarty, 'unregister_'.$type), $callback); + $this->smarty->unregisterFilter($type, $callback); } } } diff --git a/themes/default/template/menubar_categories.tpl b/themes/default/template/menubar_categories.tpl index 3307bdc1e..c3c5b1c02 100644 --- a/themes/default/template/menubar_categories.tpl +++ b/themes/default/template/menubar_categories.tpl @@ -28,5 +28,5 @@ {/foreach} {'</li></ul>'|@str_repeat:$ref_level} - <p class="totalImages">{$pwg->l10n_dec('%d photo', '%d photos', $block->data.NB_PICTURE)}</p> + <p class="totalImages">{$block->data.NB_PICTURE|@translate_dec:'%d photo':'%d photos'}</p> </dd> diff --git a/themes/default/template/menubar_tags.tpl b/themes/default/template/menubar_tags.tpl index 975d7eb09..d1a672837 100644 --- a/themes/default/template/menubar_tags.tpl +++ b/themes/default/template/menubar_tags.tpl @@ -5,7 +5,7 @@ <span>{strip} <a class="tagLevel{$tag.level}" href= {if isset($tag.U_ADD)} - "{$tag.U_ADD}" title="{$pwg->l10n_dec('%d photo is also linked to current tags', '%d photos are also linked to current tags', $tag.counter)}" rel="nofollow">+ + "{$tag.U_ADD}" title="{$tag.counter|@translate_dec:'%d photo is also linked to current tags':'%d photos are also linked to current tags'}" rel="nofollow">+ {else} "{$tag.URL}" title="{'display photos linked to this tag'|@translate}"> {/if} diff --git a/themes/default/template/month_calendar.tpl b/themes/default/template/month_calendar.tpl index 904570a10..e2713346c 100644 --- a/themes/default/template/month_calendar.tpl +++ b/themes/default/template/month_calendar.tpl @@ -12,7 +12,7 @@ {else} {foreach from=$bar.items item=item} - <span class="calItem{if !isset($item.URL)}Empty{/if}" {if isset($item.NB_IMAGES)}title="{$pwg->l10n_dec('%d photo', '%d photos', $item.NB_IMAGES)}"{/if}> + <span class="calItem{if !isset($item.URL)}Empty{/if}" {if isset($item.NB_IMAGES)}title="{$item.NB_IMAGES|@translate_dec:'%d photo':'%d photos'}"{/if}> {if isset($item.URL)} <a href="{$item.URL}">{$item.LABEL}</a> {else} @@ -68,7 +68,7 @@ TABLE.calMonth TBODY TD, TABLE.calMonth TBODY TD DIV.calImg {ldelim} <div class="calBackDate">{$day.DAY}</div><div class="calForeDate">{$day.DAY}</div> <div class="calImg"> <a href="{$day.U_IMG_LINK}"> - <img style="{$day.IMAGE_STYLE}" src="{$day.IMAGE}" alt="{$day.IMAGE_ALT}" title="{$pwg->l10n_dec('%d photo','%d photos', $day.NB_ELEMENTS)}"> + <img style="{$day.IMAGE_STYLE}" src="{$day.IMAGE}" alt="{$day.IMAGE_ALT}" title="{$day.NB_ELEMENTS|@translate_dec:'%d photo':'%d photos'}"> </a> </div> {else} diff --git a/themes/default/template/picture.tpl b/themes/default/template/picture.tpl index 5cede3071..44220bf8d 100644 --- a/themes/default/template/picture.tpl +++ b/themes/default/template/picture.tpl @@ -212,12 +212,7 @@ y.callService( <dt>{'Rating score'|@translate}</dt> <dd> {if $rate_summary.count} - {if $rate_summary.count == 1} - {assign var='rate_text' value='%d rate'|@translate} - {else} - {assign var='rate_text' value='%d rates'|@translate} - {/if} - <span id="ratingScore">{$rate_summary.score}</span> <span id="ratingCount">({$pwg->sprintf($rate_text, $rate_summary.count)})</span> + <span id="ratingScore">{$rate_summary.score}</span> <span id="ratingCount">({$rate_summary.count|@translate_dec:'%d rate':'%d rates'})</span> {else} <span id="ratingScore">{'no rate'|@translate}</span> <span id="ratingCount"></span> {/if} @@ -335,7 +330,7 @@ function togglePrivacyLevelBox() {if isset($COMMENT_COUNT)} <div id="comments" {if (!isset($comment_add) && ($COMMENT_COUNT == 0))}class="noCommentContent"{else}class="commentContent"{/if}><div id="commentsSwitcher"></div> - <h3>{$pwg->l10n_dec('%d comment', '%d comments',$COMMENT_COUNT)}</h3> + <h3>{$COMMENT_COUNT|@translate_dec:'%d comment':'%d comments'}</h3> <div id="pictureComments"> {if isset($comment_add)} diff --git a/themes/default/template/tags.tpl b/themes/default/template/tags.tpl index c4327289a..ddba69b67 100644 --- a/themes/default/template/tags.tpl +++ b/themes/default/template/tags.tpl @@ -23,7 +23,7 @@ {if $display_mode == 'cloud' and isset($tags)} <div id="fullTagCloud"> {foreach from=$tags item=tag} - <span><a href="{$tag.URL}" class="tagLevel{$tag.level}" title="{$pwg->l10n_dec('%d photo', '%d photos', $tag.counter)}">{$tag.name}</a></span> + <span><a href="{$tag.URL}" class="tagLevel{$tag.level}" title="{$tag.counter|@translate_dec:'%d photo':'%d photos'}">{$tag.name}</a></span> {/foreach} </div> {/if} @@ -39,7 +39,7 @@ {foreach from=$letter.tags item=tag} <tr class="tagLine"> <td><a href="{$tag.URL}" title="{$tag.name}">{$tag.name}</a></td> - <td class="nbEntries">{$pwg->l10n_dec('%d photo', '%d photos', $tag.counter)}</td> + <td class="nbEntries">{$tag.counter|@translate_dec:'%d photo':'%d photos'}</td> </tr> {/foreach} </table> |