Pārlūkot izejas kodu

[ZendBundle] fixed translator configuration

Fabien Potencier 15 gadi atpakaļ
vecāks
revīzija
eb942c8f18

+ 12 - 12
src/Symfony/Bundle/ZendBundle/DependencyInjection/ZendExtension.php

@@ -40,8 +40,8 @@ class ZendExtension extends Extension
             $this->registerLoggerConfiguration($config, $container);
         }
 
-        if (isset($config['i18n'])) {
-            $this->registerI18nConfiguration($config, $container);
+        if (isset($config['translator'])) {
+            $this->registerTranslatorConfiguration($config, $container);
         }
     }
 
@@ -85,23 +85,23 @@ class ZendExtension extends Extension
     }
 
     /**
-     * Loads the i18n configuration.
+     * Loads the translator configuration.
      *
      * Usage example:
      *
-     *      <zend:i18n locale="en" adapter="xliff" data="/path/to/messages.xml" />
+     *      <zend:translator locale="en" adapter="Zend\Translator\Adapter\Xliff" />
      *
      * @param array            $config    An array of configuration settings
      * @param ContainerBuilder $container A ContainerBuilder instance
      */
-    protected function registerI18nConfiguration($config, ContainerBuilder $container)
+    protected function registerTranslatorConfiguration($config, ContainerBuilder $container)
     {
-        $config = $config['i18n'];
+        $config = $config['translator'];
 
-        if (!$container->hasDefinition('zend.i18n')) {
+        if (!$container->hasDefinition('zend.translator')) {
             $loader = new XmlFileLoader($container, __DIR__.'/../Resources/config');
-            $loader->load('i18n.xml');
-            $container->setAlias('i18n', 'zend.i18n');
+            $loader->load('translator.xml');
+            $container->setAlias('translator', 'zend.translator');
         }
 
         if (isset($config['locale'])) {
@@ -109,11 +109,11 @@ class ZendExtension extends Extension
         }
 
         if (isset($config['adapter'])) {
-            $container->setParameter('zend.translator.adapter', constant($config['adapter']));
+            $container->setParameter('zend.translator.adapter', $config['adapter']);
         }
 
-        if (isset($config['translations']) && is_array($config['translations'])) {
-            foreach ($config['translations'] as $locale => $catalogue) {
+        if (isset($config['translation']) && is_array($config['translation'])) {
+            foreach ($config['translation'] as $locale => $catalogue) {
                 if ($locale == $container->getParameter('zend.translator.locale')) {
                   $container->setParameter('zend.translator.catalogue', $catalogue);
                 }

+ 14 - 0
src/Symfony/Bundle/ZendBundle/Resources/config/schema/zend-1.0.xsd

@@ -10,6 +10,7 @@
     <xsd:complexType name="config">
         <xsd:sequence>
             <xsd:element name="logger" type="logger" minOccurs="0" maxOccurs="1" />
+            <xsd:element name="translator" type="translator" minOccurs="0" maxOccurs="1" />
         </xsd:sequence>
     </xsd:complexType>
 
@@ -39,4 +40,17 @@
             <xsd:enumeration value="7" />
         </xsd:restriction>
     </xsd:simpleType>
+
+    <xsd:complexType name="translator">
+        <xsd:sequence>
+            <xsd:element name="translation" type="translation" minOccurs="0" maxOccurs="unbounded" />
+        </xsd:sequence>
+        <xsd:attribute name="locale" type="xsd:string" />
+        <xsd:attribute name="adapter" type="xsd:string" />
+    </xsd:complexType>
+
+    <xsd:complexType name="translation">
+        <xsd:attribute name="key" type="xsd:string" />
+        <xsd:attribute name="catalog" type="xsd:string" />
+    </xsd:complexType>
 </xsd:schema>

src/Symfony/Bundle/ZendBundle/Resources/config/i18n.xml → src/Symfony/Bundle/ZendBundle/Resources/config/translator.xml


+ 5 - 5
src/Symfony/Bundle/ZendBundle/Tests/DependencyInjection/ZendExtensionTest.php

@@ -29,12 +29,12 @@ class ZendExtensionTest extends TestCase
         $loader->configLoad(array('logger' => array('priority' => 3)), $container);
         $this->assertEquals(3, $container->getParameter('zend.logger.priority'), '->loggerLoad() overrides existing configuration options');
 
-        // i18n
-        $loader->configLoad(array('i18n' => array()), $container);
-        $this->assertEquals('Zend\\Translator\\Translator', $container->getParameter('zend.translator.class'), '->i&8nLoad() loads the i18n.xml file if not already loaded');
+        // translator
+        $loader->configLoad(array('translator' => array()), $container);
+        $this->assertEquals('Zend\\Translator\\Translator', $container->getParameter('zend.translator.class'), '->i18nLoad() loads the translator.xml file if not already loaded');
 
-        $loader->configLoad(array('i18n' => array('adapter' => 'Zend\\Translator\\Translator::AN_XLIFF', 'locale' => 'fr')), $container);
-        $this->assertEquals('Xliff', $container->getParameter('zend.translator.adapter'), '->i18nLoad() overrides existing configuration options');
+        $loader->configLoad(array('translator' => array('adapter' => 'Zend\\Translator\\Translator::AN_XLIFF', 'locale' => 'fr')), $container);
+        $this->assertEquals('Zend\\Translator\\Translator::AN_XLIFF', $container->getParameter('zend.translator.adapter'), '->i18nLoad() overrides existing configuration options');
         $this->assertEquals('fr', $container->getParameter('zend.translator.locale'), '->i18nLoad() overrides existing configuration options');
     }
 }