【问题标题】:Iterate on symfony2 translation element childs迭代 symfony2 翻译元素子项
【发布时间】:2013-12-07 17:12:10
【问题描述】:

我正在使用 yml 文件类型的 symfony2 翻译工具。

我有类似的东西:

carousel:
    slide1:
        title: At nunc si ad aliquem bene
        text: Altera sententia est quae
    slide2:
        title: Vita est illis semper in fuga
        text: Haec igitur lex in amicitia
    slide3:
        title: Cum haec taliaque sollicitas
        text: Tandem id ut optimum factu

是否可以使用 symfony 迭代 twig 中的“旋转木马”子级?

类似:

{% for slide in carousel|trans %}
    {{ slide.title }}
    {{ slide.text }}
{% endfor %}

【问题讨论】:

    标签: symfony twig translation yaml


    【解决方案1】:

    不,如果不创建扩展,这是不可能的。

    但是,您可以执行以下操作:

    {% for i in range(1,carousel|length) -%}
        {{ 'slide' ~ i ~ '.title'|trans }}
        {{ 'slide' ~ i ~ '.text'|trans }}
    {%- endfor %}
    

    【讨论】:

    • 我在您的答案中添加了 range() 函数。它比1..3 更容易维护,因为它会自动处理越来越多的轮播元素:)
    • @nifr 问题是你没有轮播变量,我选择使用 1..3 显示它不能动态完成
    • 我明白你的意思。您无法获得 (YAML-)translation-array 中存在的翻译数量。我只是假设 twig 中的这个 carousel 变量将代表一个 Array(Collection) 保存图像(以及默认文本)......因为几乎所有像著名的 jCarousel 这样的轮播插件都主要用于图像滑动。
    • 此答案的循环范围现在不正确,因为carousel|length 仅表示文本的长度(例如 8)。
    猜你喜欢
    • 1970-01-01
    • 2018-02-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-10
    • 2015-10-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多