我遇到了以下问题。我在Prestashop CMS中开店,它使用Smarty模板引擎。所以有一句话,显示了许多产品。现在 - 用英语语言很简单 - 你可以这样做:
{l s='Cart contains'} {$productNumber} {if $productNumber == 1}{l s='product'}{else}{l s='products'}{/if}
但是这家商店是用波兰语制作的 - 并且开始出现问题。它要复杂得多。就像这样:
那么 - 如何为此写一个聪明的条件?
由于
答案 0 :(得分:1)
我想说这里所需的逻辑足够冗长,并且可能足够重用以保证插件。
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)}