Shopware 6后台Twig中{{ $t(...) }}工作机制及$tc与$t差异
关于Shopware 6中$t翻译指令执行环境及$tc与$t的区别
一、$t('swag-bundle.list.addButtonText')的执行环境
你看到的代码里,外层的{{ ... }}是Twig语法,但这里的$t并非Twig的服务器端函数,而是Vue实例提供的客户端翻译方法。
Shopware 6后台的Twig文件仅作为Vue模板的生成载体,Twig会将{{ $t('swag-bundle.list.addButtonText') }}原封不动输出为Vue模板的插值语法,最终由浏览器端的Vue框架解析执行,从客户端的翻译资源文件中读取对应文本。因此这个翻译指令完全在JavaScript客户端执行,和服务器端的Twig处理无关。
二、$t与$tc的区别
- $t:用于普通单条文本翻译,传入翻译键值即可获取对应文本,适用于无需区分单复数的场景,示例:
$t('swag-bundle.list.addButtonText') - $tc:是"translate count"的缩写,专门处理复数场景翻译,需要传入翻译键值和数量参数,Shopware会根据数量自动匹配对应复数形式的翻译文本。比如翻译资源中定义了
"item": "商品", "item_plural": "商品",使用$tc('item', 3)会返回复数形式的文本,$tc('item', 1)则返回单数形式,示例:$tc('swag-bundle.list.itemCount', 5)
内容的提问来源于stack exchange,提问作者Alex
相关产品推荐
相关产品推荐

