0

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

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

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

我已经研究/vendor/akeneo/pim-community-dev/src/Pim/Bundle/EnrichBundle/Resources/views/CategoryTree了扩展/覆盖什么的提示,但不太确定该怎么做。

4

1 回答 1

2

总结一下会发生什么:树是通过调用CategoryTreeController::childrenAction生成的。呈现的twig 视图children_response将使用 CategoryExtension中定义的 Twig 函数格式化类别

要设置自己的语言环境,您需要在项目中覆盖此扩展(扩展类并重新定义类参数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然后,在菜单和产品网格的类别过滤器中,类别标签都是法语的。

于 2018-07-12T08:40:35.060 回答