SMARTY - stemmings - 产品数量(Prestashop)
问题描述:
我遇到以下问题。我正在使用Smarty模板引擎的Prestashop CMS中开店。所以有一个句子,显示了一些产品。现在 - 在英语很简单 - 你可以把它像:SMARTY - stemmings - 产品数量(Prestashop)
{l s='Cart contains'} {$productNumber} {if $productNumber == 1}{l s='product'}{else}{l s='products'}{/if}
但这个店在波兰语语言所作的 - 有启动的问题。它更complicated.It的是这样的:
- 为1的产品,你有一个字 - “PRODUKT”
- 对于2,3和4产品,每包含这些 数字编号(如22,23, 24,32,33,34,152,153,154,242,243,244等) 另一个词 - “导航产品”
- 对于一切上述4(除了在点那些数字2)第三 词 - “produktów”
所以 - 如何为此写一个聪明的条件?
感谢
答
我要说这里所需的逻辑是冗长不够,有可能重新使用足以保证一个插件。
function smarty_modifier_nb_products_to_str($nbProducts){
if($nbProducts > 1){
$numbers = str_split((string) $nbProducts);
return count(array_intersect($numbers, array('2','3','4'))
? 'produkty'
: 'produktów';
} else {
return 'produkt';
}
}
有了这样的用法:
{l s='Cart contains'} {nb_products_to_str($productNumber)}
只有我好奇,而不是答案。 Smarty是否要求您仅在一行上添加所有内容? – PeeHaa