2013-07-05 59 views
2

我已經擴展了SonataUserBundle,並且正在嘗試將法語翻譯放入其中。索納塔用戶 - 翻譯

這裏是我的管理服務定義:

sonata.admin.user: 
    class: Application\Sonata\UserBundle\Admin\Entity\UserAdmin 
    tags: 
     - { name: sonata.admin, manager_type: orm, group: user, label: users } 
    arguments: 
     - null 
     - Application\Sonata\UserBundle\Entity\User 
     - SonataAdminBundle:CRUD 
    calls: 
     - [setTranslationDomain, [SonataUserBundle]] 
     - [setUserManager, [@fos_user.user_manager]] 
     - [setSecurityContext, [@security.context]] 

正如你所看到的,翻譯域設置爲SonataUserBundle

我在src/Application/Sonata/UserBundle/Resources/translations/SonataUserBundle.fr.yml

#... 
list: 
    label_firstname: Prénom 
    label_username: Nom d'utilisateur 
#... 

設置一些標籤,但他們沒有考慮到(高速緩存清零)

但是,如果我刪除此文件,它侮辱我

文件「.../src/Application/Sonata/UserBundle/Resources/translations/SonataUserBundle.fr.yml」必須包含一個YAML數組。

修改翻譯域完全沒有效果。

我在做什麼錯?

+0

SonataUserBundle已被翻譯。你在參數和配置文件中改變了語言環境嗎? – Picoss

+0

區域設置已經設置爲法語,其他管理員工作正常。實際上,只有UserAdmin部分正在執行此操作(包裝中的SonataAdmin使用法語)。我懷疑我的管理服務錯過了一些東西。 –

回答

4

您有加label_translator_strategy:sonata.admin.label.strategy.underscore服務定義:

sonata.admin.user: 
    class: Application\Sonata\UserBundle\Admin\TestAdmin 
    tags: 
     - { name: sonata.admin, manager_type: orm, group: users, label: users, label_translator_strategy: sonata.admin.label.strategy.underscore } 
    arguments: 
     - null 
     - Application\Sonata\UserBundle\Entity\User 
     - SonataAdminBundle:CRUD 
    calls: 
     - [setTranslationDomain, [SonataUserBundle]] 
     - [setUserManager, [@fos_user.user_manager]] 
     - [setSecurityContext, [@security.context]] 

我已經在一個新的項目進行測試,並能正常工作。

+0

謝謝工作正常! –