Prechádzať zdrojové kódy

translation domain can be tweaked from the Admin class

Thomas 14 rokov pred
rodič
commit
643101d590

+ 53 - 6
Admin/Admin.php

@@ -56,6 +56,13 @@ abstract class Admin extends ContainerAware
      */
     protected $classnameLabel;
 
+
+    /**
+     *
+     * @var string the translation domain to be used to translate messages
+     */
+    protected $translationDomain = 'BaseApplicationBundle';
+
     /**
      *
      * @var array options to set to the form (ie, validation_groups)
@@ -1319,10 +1326,8 @@ abstract class Admin extends ContainerAware
     {
         $menu = $menu ?: new Menu;
 
-        $translator = $this->container->get('translator');
-
         $child = $menu->addChild(
-            $translator->trans(sprintf('link_%s_list', $this->getClassnameLabel()), array()),
+            $this->trans(sprintf('link_%s_list', $this->getClassnameLabel())),
             $this->generateUrl('list')
         );
         
@@ -1342,16 +1347,20 @@ abstract class Admin extends ContainerAware
 
             if($action != 'list') {
                 $menu = $menu->addChild(
-                    sprintf('link_%s_list', $this->getClassnameLabel()),
+                    $this->trans(sprintf('link_%s_list', $this->getClassnameLabel())),
                     $this->generateUrl('list')
                 );
             }
 
-            $breadcrumbs = $menu->getBreadcrumbsArray(sprintf('link_%s_%s', $this->getClassnameLabel(), $action));
+            $breadcrumbs = $menu->getBreadcrumbsArray(
+                $this->trans(sprintf('link_%s_%s', $this->getClassnameLabel(), $action))
+            );
 
         } else if($action != 'list') {
 
-            $breadcrumbs = $child->getBreadcrumbsArray(sprintf('link_%s_%s', $this->getClassnameLabel(), $action));
+            $breadcrumbs = $child->getBreadcrumbsArray(
+                $this->trans(sprintf('link_%s_%s', $this->getClassnameLabel(), $action))
+            );
 
         } else {
 
@@ -1400,4 +1409,42 @@ abstract class Admin extends ContainerAware
 
         return null;
     }
+
+    /**
+     * translate a message id 
+     *
+     * @param string $id
+     * @param array $parameters
+     * @param null $domain
+     * @param null $locale
+     * @return string the translated string
+     */
+    public function trans($id, array $parameters = array(), $domain = null, $locale = null)
+    {
+
+        $domain = $domain ?: $this->translationDomain;
+        
+        return $this->container->get('translator')->trans($id, $parameters, $domain, $locale);
+    }
+
+    /**
+     * set the translation domain
+     *
+     * @param string $translationDomain the translation domain
+     * @return void
+     */
+    public function setTranslationDomain($translationDomain)
+    {
+        $this->translationDomain = $translationDomain;
+    }
+
+    /**
+     * return the translation domain
+     *
+     * @return string the translation domain
+     */
+    public function getTranslationDomain()
+    {
+        return $this->translationDomain;
+    }
 }

+ 8 - 8
Resources/views/CRUD/base_edit.twig.html

@@ -14,8 +14,8 @@ file that was distributed with this source code.
 {% block actions %}
     <div class="sonata-actions">
         <ul>
-            <li class="sonata-action-element"><a href="{{ admin.generateUrl('create') }}">{% trans "link_action_create" from "BaseApplicationBundle" %}</a></li>
-            <li class="sonata-action-element"><a href="{{ admin.generateUrl('list') }}">{% trans "link_action_list" from "BaseApplicationBundle" %}</a></li>
+            <li class="sonata-action-element"><a href="{{ admin.generateUrl('create') }}">{% trans "link_action_create" from admin.translationdomain %}</a></li>
+            <li class="sonata-action-element"><a href="{{ admin.generateUrl('list') }}">{% trans "link_action_list" from admin.translationdomain %}</a></li>
         </ul>
     </div>
 {% endblock %}
@@ -61,17 +61,17 @@ file that was distributed with this source code.
 
         {% if app.request.isxmlhttprequest %}
             {% if object.id %}
-                <input type="submit" name="btn_update" value="{% trans "btn_update" from "BaseApplicationBundle" %}"/>
+                <input type="submit" name="btn_update" value="{% trans "btn_update" from admin.translationdomain %}"/>
             {% else %}
-                <input type="submit" name="btn_create" value="{% trans "btn_create" from "BaseApplicationBundle" %}"/>
+                <input type="submit" name="btn_create" value="{% trans "btn_create" from admin.translationdomain %}"/>
             {% endif %}
         {% else %}
             {% if object.id %}
-                <input type="submit" name="btn_update_and_edit" value="{% trans "btn_update_and_edit_again" from "BaseApplicationBundle" %}"/>
-                <input type="submit" name="btn_update_and_list" value="{% trans "btn_update_and_return_to_list" from "BaseApplicationBundle" %}"/>
+                <input type="submit" name="btn_update_and_edit" value="{% trans "btn_update_and_edit_again" from admin.translationdomain %}"/>
+                <input type="submit" name="btn_update_and_list" value="{% trans "btn_update_and_return_to_list" from admin.translationdomain %}"/>
             {% else %}
-                <input type="submit" name="btn_create_and_edit" value="{% trans "btn_create_and_edit_again" from "BaseApplicationBundle" %}"/>
-                <input type="submit" name="btn_create_and_create" value="{% trans "btn_create_and_create_a_new_one" from "BaseApplicationBundle" %}"/>
+                <input type="submit" name="btn_create_and_edit" value="{% trans "btn_create_and_edit_again" from admin.translationdomain %}"/>
+                <input type="submit" name="btn_create_and_create" value="{% trans "btn_create_and_create_a_new_one" from admin.translationdomain %}"/>
             {% endif %}
         {% endif %}
     </form>

+ 1 - 1
Resources/views/CRUD/base_list.twig.html

@@ -14,7 +14,7 @@ file that was distributed with this source code.
 {% block actions %}
     <div class="sonata-actions">
         <ul>
-            <li class="sonata-action-element"><a href="{{ admin.generateUrl('create') }}">{% trans "link_action_create" from "BaseApplicationBundle" %}</a></li>
+            <li class="sonata-action-element"><a href="{{ admin.generateUrl('create') }}">{% trans "link_action_create" from admin.translationdomain %}</a></li>
         </ul>
     </div>
 {% endblock %}