2015-12-12 2 views
1

Я пытаюсь перевести некоторую страницу списка администраторов сонаты - строки с использованием файла .xliff внутри моего пакета. Эти строки принадлежат моей пачке и не Sonata, так это те шаги, которые я есть следовать:Как правильно перевести строки в SonataAdminBundle

  • Создать .xliff файл под: src/Clanmovil/PlatformBundle/Resources/translations/PlatformBundle.es.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="PlatformBundle.en.xliff" > 
         <body> 
          <trans-unit id="name"> 
           <source>name</source> 
           <target>Nombre</target> 
          </trans-unit> 
          <trans-unit id="description"> 
           <source>description</source> 
           <target>Descripción</target> 
          </trans-unit> 
          <trans-unit id="active"> 
           <source>active</source> 
           <target>Activo?</target> 
          </trans-unit> 
         </body> 
        </file> 
    </xliff> 
    
  • Setup label свойство под src/Clanmovil/PlatformBundle/Controller/Admin/CategoryAdmin.php, как следовать:

    class CategoryAdmin extends Admin 
    { 
        ... 
    
        // Fields to be shown on lists 
        protected function configureListFields(ListMapper $listMapper) 
        { 
         $listMapper 
          ->add('name', null, array(
           'label' => 'name' 
          )) 
          ->add('active', null, array(
           'label' => 'active' 
          )); 
         ... 
        } 
    
        ... 
    } 
    
  • Настройка app/config/config.yml как Follo ш:

    parameters: 
        locale: es 
    
    framework: 
        #esi:    ~ 
        translator:  { fallbacks: ["%locale%"] } 
        default_locale: "%locale%" 
        .... 
    

И не работает я до сих пор видим name и active строк на странице списка, и я не знаю, что мне не хватает. Я прочитал несколько сообщений как this, this и многие другие. Может ли кто-нибудь дать мне совет?


Поскольку предыдущая проблема была решена с ответом, но это почти то же самое, я решил изменить OP, чем создать новый, так что здесь мы идем. Посмотрите на следующую установку для SonataAdmin:

sonata_admin: 
    dashboard: 
     groups: 
      configuration: 
       icon: <i class="fa fa-lg fa-fw fa fa-folder"></i> 
       label: configuration 
       items: 
        - sonata.admin.category 
        - sonata.admin.command 
        - sonata.admin.alias 

И это определение этих услуг в Clanmovil/PlatformBundle/Resources/config/services.yml:

services: 
    sonata.admin.alias: 
     class: Clanmovil\PlatformBundle\Controller\Admin\AliasAdmin 
     tags: 
      - { name: sonata.admin, manager_type: orm, group: "Configuration", label: "alias" } 
     arguments: 
      - ~ 
      - Clanmovil\PlatformBundle\Entity\Alias 
      - ~ 
    sonata.admin.category: 
     class: Clanmovil\PlatformBundle\Controller\Admin\CategoryAdmin 
     tags: 
      - { name: sonata.admin, manager_type: orm, group: "Configuration", label: "category" } 
     arguments: 
      - ~ 
      - Clanmovil\PlatformBundle\Entity\Category 
      - ~ 
    sonata.admin.command: 
     class: Clanmovil\PlatformBundle\Controller\Admin\CommandAdmin 
     tags: 
      - { name: sonata.admin, manager_type: orm, group: "Configuration", label: "command" } 
     arguments: 
      - ~ 
      - Clanmovil\PlatformBundle\Entity\Command 
      - ~ 

Но струны configuration, command и category (на данный момент) не переводятся см рис ниже:

enter image description here

Почему? Эти переводы находятся в том же файле, что и alias. Что может быть здесь?

ответ

2

Вы должны указать домен перевода явно, если вы создаете файлы переводов, отличные от messages. messages является доменом перевода по умолчанию. У вас есть два варианта: переименуйте PlatformBundle.es.xliff в messages.es.xliff или укажите домен tranlation. Пример:

В типах форм:

... 
$builder->add('name', 'text', ['translation_domain' => 'PlatformBundle']); 
... 

в прута trmplates:

{{ 'name'|trans({}, 'PlatformBundle') }} 

Я не знаю, что это ListMapper класс, но должна быть поддержка (я думаю) для перевода доменов также.

+0

Можете ли вы снова взглянуть на ОП под горизонтальным правилом? Я сделал редактирование, потому что не работает для меня – ReynierPM

+0

@ReynierPM Вы прочитали эту [doc страницу] (https://sonata-project.org/bundles/admin/master/doc/reference/translation.html)? – xurshid29

+0

да я сделал, но что я здесь пропустил? Нужно ли мне настраивать что-то еще? Я не совсем понимаю, можете ли вы указать мне в правильном направлении? – ReynierPM