Sonata管理バンドルを使用してi18n管理サイトを構築しています。ここで、管理者ユーザーのロケール セットを使用してロケールと翻訳を変更したいと考えています。のように、私には 2 人の管理者ユーザーがいます。1 人は en(userA)で、もう 1 人は zh(UserB)です。ユーザーのロケールは、ユーザー管理ダッシュボードでそれぞれ en/zh に設定されています。</p>
私の管理サービス:</p>
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 をそのまま:</p>
<?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 で admin にログインすると、メッセージ (製品名) は OK です。しかし、私は UserB でログインし、メッセージはまだ en locale(product name) です。もちろん、userB の parameters.yml (%locale%) でグローバル ロケールを変更できますが、これは userA には適していません。
では、サイトのロケール (メッセージまたは翻訳) を別の管理者のユーザー ロケールに変更するにはどうすればよいですか? 前もって感謝します。