介绍
在我的个人项目中我使用:
- XAMPP 与 PHP
v7.1.6
- Symfony
v3.3.8
- Knp菜单包
dev-master / 2.2.x-dev
(dev
版本,因为它与当前版本兼容Symfony 3.3.x
版本,早期版本未通过安装composer
.) [link 1] https://packagist.org/packages/knplabs/knp-menu#dev-master, [link 2] https://symfony.com/doc/current/bundles/KnpMenuBundle/index.html, [link 3] https://github.com/KnpLabs/KnpMenuBundle为了管理菜单。
- 引导程序
v3.3.7
- Bootstrap 和 KnpMenuBundle 集成[link 4] https://gist.github.com/Invis1ble/503db8bb9ff6dafc52c8b2bf7c6fec42
配置
为了进行设置,我使用了 [2]、[3] 中的文档和代码示例 [4]。我的菜单正在工作,之间的集成Bootstrap
and KnpMenuBundle
也有效。
Problem
我在用Logged in as myTestUserName
in user profile
菜单的一部分。我想从翻译中排除此项目,因为我正在手动获取完整翻译的字符串(代码示例 1)。
此刻即使与translation_domain
明确设置为false
我在缺少的部分得到了所述菜单项Translation Messages
部分中的profiler
.
Images
Question
在使用时确保特定翻译不包含在缺失部分中的正确方法是什么KnpMenuBundle
?
代码:样本 1
我的样本MenuBuilder
$profile->setChildrenAttribute("class", "dropdown-menu")
->addChild('Logged in as', array('label' => $getTranslatedLoggedInAs))
->setExtra('divider_append', true)
->setExtra('translation_domain', false);
代码:样本2
getting loggedInAs
翻译后的字符串MenuBuilder
public function getTranslatedLoggedInAs()
{
$user = $this->tokenStorage->getToken()->getUser();
//dump($user);
$translated_logged_in_as = '';
$anonymous_user = 'anon.';
if ($user->getUsername() !== $anonymous_user)
{
$translated_logged_in_as = $this->translator->trans(
'layout.logged_in_as', ['%username%' => $user->getUsername()], 'FOSUserBundle'
);
}
elseif ($user->getUsername() === $anonymous_user)
{
$translated_logged_in_as = $this->translator->trans(
'layout.logged_in_as', ['%username%' => $anonymous_user], 'FOSUserBundle'
);
}
return $translated_logged_in_as;
}
结论
请指教。
感谢您的时间和知识。