Smartyで文字を丸める時は、truncate修飾子などを使いますが、残念ながら日本語などのマルチバイトに対応していません。
ですが、PHPの関数をそのまま使用できるので、マルチバイト対応のmb_strimwidthを使ってみてはどうでしょうか。
[smarty]
{$hoge|mb_strimwidth:0:15:”…”|escape}
[/smarty]
無事丸められましたでしょうか。
mb_strlenのような文字数と勘違いしてましたが、mb_strwidthで得られるのと同じ、文字幅なんですよね。
自分でオリジナルの修飾子を作るのも良いと思います。