65 lines
1.8 KiB
ReStructuredText
65 lines
1.8 KiB
ReStructuredText
I18n for your Menu Labels
|
|
=========================
|
|
|
|
The KnpMenuBundle translates all menu items by default. Assume you've built a menu
|
|
like this::
|
|
|
|
$menu = $factory->createItem('root');
|
|
|
|
$menu->addChild('Home', ['route' => 'homepage']);
|
|
$menu->addChild('Login', ['route' => 'login']);
|
|
|
|
The items "Home" and "Login" can now be translated in the message domain:
|
|
|
|
.. configuration-block::
|
|
|
|
.. code-block:: yaml
|
|
|
|
# app/Resources/translations/messages.fr.yml
|
|
Home: Accueil
|
|
Login: Connexion
|
|
|
|
.. code-block:: xml
|
|
|
|
<!-- app/Resources/translations/messages.fr.xlf -->
|
|
<?xml version="1.0"?>
|
|
<xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2">
|
|
<file source-language="en" datatype="plaintext" original="file.ext">
|
|
<body>
|
|
<trans-unit id="menu.home">
|
|
<source>Home</source>
|
|
<target>Accueil</target>
|
|
</trans-unit>
|
|
|
|
<trans-unit id="menu.login">
|
|
<source>Login</source>
|
|
<target>Connexion</target>
|
|
</trans-unit>
|
|
</body>
|
|
</file>
|
|
</xliff>
|
|
|
|
.. code-block:: php
|
|
|
|
// app/Resources/translations/messages.fr.php
|
|
return [
|
|
'Home' => 'Accueil',
|
|
'Login' => 'Connexion',
|
|
];
|
|
|
|
Configure the Translation Domain
|
|
--------------------------------
|
|
|
|
You can configure the translation domain that's used in the extras of the menu
|
|
item::
|
|
|
|
// ...
|
|
$menu->addChild('Home', ['route' => 'homepage'])
|
|
->setExtra('translation_domain', 'AcmeAdminBundle');
|
|
|
|
Disabling Translation
|
|
---------------------
|
|
|
|
You can disable translation of the menu item by setting ``translation_domain``
|
|
to ``false``.
|