Akeneo 类别树 UI 语言环境覆盖

Akeneo category tree UI locale override

我有一个 Akeneo 2.3 运行 10 个语言环境。其中 1 个语言环境是我们自定义的语言环境,称为 ab_AB。

Settings -> Categories UI 中查看类别树或将产品分配给类别 UI 时,类别标签根据登录用户的区域显示。

我想显示来自 ab_AB 语言环境而不是登录用户语言环境的类别标签值。

我已经研究了 /vendor/akeneo/pim-community-dev/src/Pim/Bundle/EnrichBundle/Resources/views/CategoryTree 以获取有关 extend/override 内容的提示,但不太确定该怎么做。

总结一下发生了什么:树是通过调用 CategoryTreeController::childrenAction. The rendered twig view will format the categories using the Twig function children_response, defined in the CategoryExtension.

生成的

要设置自己的语言环境,您需要在项目中覆盖此扩展(扩展class并重新定义class参数pim_enrich.twig.category_extension.class)并覆盖受保护的方法getLabel如下:

protected function getLabel(
    CategoryInterface $category,
    $withCount = false,
    $includeSub = false,
    $relatedEntity = 'product'
) {
    $category->setLocale('ab_AB');

    return parent::getLabel($category, $withCount, $includeSub, $relatedEntity);
}

我使用语言环境 fr_FR 成功测试了它,而我的 PIM 是英文的。 Settings → Categories 菜单和产品网格的类别过滤器中的类别标签都是法语的。