Symfony“跨” Twig 模板内的域

发布于 2024-12-08 14:06:19 字数 156 浏览 0 评论 0原文

我想这样做:

$this->get('translator')->trans('notice.unregistered', array(), 'index');

在 Twig 模板内,所以我不必将其作为参数传递。如何?

I'd like to do this:

$this->get('translator')->trans('notice.unregistered', array(), 'index');

Inside Twig template, so I don't have to pass this as an argument. How?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

滿滿的愛 2024-12-15 14:06:19

您还可以使用反式过滤器:

{{ 'translationkey'|trans({},'domain') }}

You can also do using trans filter :

{{ 'translationkey'|trans({},'domain') }}
笑饮青盏花 2024-12-15 14:06:19

解决办法是:

{% trans from "domain" %}text{% endtrans %}

The solution is:

{% trans from "domain" %}text{% endtrans %}
丑疤怪 2024-12-15 14:06:19

您可以添加自定义函数来更改模板内的域。

添加您的功能:

$getTextdomain = new Twig_SimpleFunction('get_textdomain', function () {
    return textdomain(NULL);
});
$setTextdomain = new Twig_SimpleFunction('set_textdomain', function ($domain) {
    textdomain($domain);
});

$twig->addFunction($getTextdomain);
$twig->addFunction($setTextdomain);

然后使用它:

{% set originalDomain = get_textdomain() %}
{{ set_textdomain('errors') }}
{% trans "My error message" %}
{{ set_textdomain(originalDomain) }}

You can add custom functions to change domains inside your templates.

Add your functions:

$getTextdomain = new Twig_SimpleFunction('get_textdomain', function () {
    return textdomain(NULL);
});
$setTextdomain = new Twig_SimpleFunction('set_textdomain', function ($domain) {
    textdomain($domain);
});

$twig->addFunction($getTextdomain);
$twig->addFunction($setTextdomain);

Then use it:

{% set originalDomain = get_textdomain() %}
{{ set_textdomain('errors') }}
{% trans "My error message" %}
{{ set_textdomain(originalDomain) }}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文