Pregunta

Creé mi propia sección (diga "Empresa") en administración system_config

<config>
    <sections>
        <company translate="label">
            <label>Company</label>
            <tab>service</tab>
            <frontend_type>text</frontend_type>
            <sort_order>400</sort_order>
            <show_in_default>1</show_in_default>
            <show_in_website>1</show_in_website>
            <show_in_store>1</show_in_store>
        </company >
    </sections>
</config>

Creé 2 módulos agregando su propio grupo en la sección Empresa.Esos grupos se muestran según lo previsto.Ambos módulos están bien configurados para manejar traducciones adminhtml.

Módulo 1 :

<config>
    <adminhtml>
        <translate>
            <modules>
                <company>
                    <files>
                        <default>Company_Module1.csv</default>
                    </files>
                </company>
            </modules>
        </translate>
    </adminhtml>
</config>

y Módulo 2:

<config>
    <adminhtml>
        <translate>
            <modules>
                <company>
                    <files>
                        <default>Company_Module2.csv</default>
                    </files>
                </company>
            </modules>
        </translate>
    </adminhtml>
</config>

Pues aqui esta mi problema :Creé el Módulo 2 antes que el Módulo 1.Mientras el Módulo 2 estuviera solo en la sección Empresa, mis cadenas se tradujeron correctamente.Tan pronto como creé el Módulo 1 y agregué su grupo en la sección Empresa, solo se tradujeron las etiquetas y los comentarios del Módulo 1.

Parece que sólo Company_Module1.csv se utiliza.Cualquier cadena en Company_Module2.csv es ignorado.Si copio mi Company_Module2.csv contenido en Company_Module1.csv archivo, entonces el Módulo 2 ahora está traducido correctamente.Es muy extraño porque configuré explícitamente el Módulo 2 para traducir desde Company_Module2.csv y no de Company_Module1.csv.

¿Alguien puede explicar este comportamiento?Con el tiempo, esto me ayudará a comprender qué hice mal y solucionarlo.Gracias !

¿Fue útil?

Solución

Para comprender este comportamiento necesita saber cómo Magento lee sus archivos de configuración.

Primero, todos los archivos XML se fusionan en una gran estructura.El resultado se ve así:

<config>
    <adminhtml>
        <translate>
            <modules>
                <company>
                    <files>
                        <default>Company_Module1.csv</default>
                        <default>Company_Module2.csv</default>
                    </files>
                </company>
            </modules>
        </translate>
    </adminhtml>
</config>

Luego, se accede a la mayoría de los valores a través de XPath o se convierten a una estructura de matriz asociativa.Esta estructura sería algo así como

'files' => array(
    'default' => 'Company_Module1.csv',
    'default' => 'Company_Module2.csv',
 )

Pero una matriz no puede tener la misma clave dos veces, por lo que termina con un solo valor.

Solución

Siempre usa único identificadores en sus archivos de configuración, donde pueda elegirlos usted mismo.

Debería ser:

<config>
    <adminhtml>
        <translate>
            <modules>
                <company_module1>
                    <files>
                        <default>Company_Module1.csv</default>
                    </files>
                </company>
            </modules>
        </translate>
    </adminhtml>
</config>

y

<config>
    <adminhtml>
        <translate>
            <modules>
                <company_module2>
                    <files>
                        <default>Company_Module2.csv</default>
                    </files>
                </company>
            </modules>
        </translate>
    </adminhtml>
</config>

Además, en system.xml, no especificó qué módulo debería usarse, lo que podría provocar un comportamiento inesperado si hay traducciones conflictivas.Mejor:

    <company translate="label" module="Company_Module1">

Pero esto no está relacionado con tu problema.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a magento.stackexchange
scroll top