Я создаю сайт администратора i18n с пакетом администратора сонаты. Теперь я хочу изменить свою локаль и перевод с установленной локалью пользователя-администратора. Например, у меня есть два пользователя-администратора, один — en (userA), а другой — zh (UserB). локаль пользователя устанавливается en/zh в панели администратора пользователя соответственно。
Моя служба администратора:
services:
sonata.admin.post:
class: Acme\StoreBundle\Admin\PostAdmin
tags:
- { name: sonata.admin, manager_type: orm, group: "Content", label: "Project", label_translator_strategy: sonata.admin.label.strategy.underscore }
arguments:
- ~
- Acme\StoreBundle\Entity\Product
- ~
calls:
- [ setTranslationDomain, [AcmeStoreBundle]]
- [ setLabelTranslatorStrategy, [ @sonata.admin.label.strategy.native ]]
Затем мои Resources/translations/AcmeStoreBundle.en.xliff и Resources/translations/AcmeStoreBundle.zh.xliff точно так же:
<?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="1">
<source>label.product.name</source>
<target>Product Name</target> ##---> zh is diffrent here!!!
</trans-unit>
</body>
</file>
</xliff>
Затем я вхожу в систему с правами администратора от UserA, сообщение (название продукта) в порядке. Но я вхожу в систему с помощью UserB, сообщение все еще находится в локали (название продукта). Конечно, я могу изменить глобальную локаль в parameters.yml (%locale%) для пользователя B, но это не очень хорошо для пользователя A.
Итак, как я могу изменить языковой стандарт моего сайта (сообщение или перевод) с другим языковым стандартом администратора? Заранее спасибо.