我试图将翻译字符串作为键值对通过Twig模板传递,而不必一个接一个地再次赋值。
我把我的翻译放在一个文件translations/messages.fr.yaml
中。示例:
entity:
foo: some translation
bar: another translation
third:
title: one more
目前,我在JS代码块中通过Twig模板传递翻译,使用'trans'过滤器:
const translations = {
foo: "{{'entity.foo'|trans}}",
bar: "{{'entity.bar'|trans}}",
third: {
title: "{{'entity.third.title'|trans}}"
}
}
有没有一种方法直接传递'实体'的所有属性?我可以将翻译作为一个对象访问,并通过JSON将其传递到变量中吗(作为Twig变量,或者如果需要,用<?php ... ?>
回显某些内容)?
我知道我可以使用 AJAX ,但我试图传递模板中的数据。
1条答案
按热度按时间krcsximq1#
我用一个函数
getTranslations
解决了这个问题,该函数检索目录并将其与备用目录合并。然后它调用递归函数addToArray
,从点分隔的键段创建一个多维数组:在twig模板中,我使用脚本块中的输出: