Sylius UI 标记图标未显示

Sylius UI flag icon not showing

在树枝模板中 我使用 sylius 标志宏:

{% import '@SyliusUi/Macro/flags.html.twig' as syliusUiFlags %}
{{ syliusUiFlags.fromLocaleCode(locale.code) }}

什么 returns 我如我所料。 localeSylius\Component\Locale\Model\Locale

的实例

但是对于乌克兰语言环境 locale.code 是 "uk",并且在 style.css 中标志图标定义为 i.flag.uai.flag.ukraine。 因此,此规则未显示标志 i.flag.ukbackground: url(themes/default/assets/images/flags.png) no-repeat -108px -1976px;

现在我看到一个解决方案 - 添加自定义 css 和

i.flag.uk:before { background-position:-72px -1872px !important; }

如何解决这个具体问题?不使用自定义 css 规则或添加如下内容:

{% if locale.code == 'uk' %}
    {% set localeCode = 'ua' %}
{% else %}
    {% set localeCode = locale.code %}
{% endif %}
syliusUiFlags.fromLocaleCode(localeCode)

我试过实际的 Sylius 演示来显示订单,它使用 ua,所以你是对的,根据 wiki 使用了不正确的代码。最快的方法是使用上面描述的 twig 代码,但正确的方法是修复输入(接收)数据,例如将 table sylius_locale 中的 DB 中的记录从 ua 修改为 uk,但它可能会导致网站其他地方出现问题。