Frage

Ich habe unter admin einen eigenen Bereich (z. B. "Firma") erstellt 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>

Ich habe 2 Module erstellt, die im Unternehmensbereich eine eigene Gruppe hinzugefügt haben.Diese Gruppen werden wie vorgesehen angezeigt.Beide Module sind gut konfiguriert, um adminhtml-Übersetzungen zu verarbeiten.

Modul 1 :

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

und Modul 2 :

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

Also hier ist mein Problem :Ich habe Modul 2 vor Modul 1 erstellt.Solange Modul 2 alleine im Firmenbereich war, wurden meine Zeichenfolgen korrekt übersetzt.Sobald ich Modul 1 erstellt und seine Gruppe im Unternehmensbereich hinzugefügt habe, wurden nur Beschriftungen und Kommentare von Modul 1 übersetzt.

Es scheint, dass nur Company_Module1.csv verwendet wird.Beliebige Zeichenfolge in Company_Module2.csv wird ignoriert.Wenn ich meine kopiere Company_Module2.csv inhalt in Company_Module1.csv datei, dann ist Modul 2 jetzt korrekt übersetzt.Es ist sehr seltsam, weil ich Modul 2 explizit für die Übersetzung konfiguriert habe Company_Module2.csv und nicht von Company_Module1.csv.

Kann jemand dieses Verhalten erklären?Irgendwann wird mir das helfen zu verstehen, was ich falsch gemacht habe und es zu beheben.Danke !

War es hilfreich?

Lösung

Um dieses Verhalten zu verstehen, müssen Sie wissen, wie Magento seine Konfigurationsdateien liest.

Zunächst werden alle XML-Dateien zu einer großen Struktur zusammengeführt.Das Ergebnis sieht so aus:

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

Dann wird auf die meisten Werte entweder über XPath zugegriffen oder in eine assoziative Array-Struktur konvertiert.Diese Struktur wäre so etwas wie

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

Ein Array kann jedoch nicht zweimal denselben Schlüssel haben, sodass es nur einen Wert enthält.

Lösung

Immer verwenden einzigartig bezeichner in Ihren Konfigurationsdateien, wo immer Sie sie selbst auswählen können.

Es sollte sein:

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

und

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

Auch im System.xml, Sie haben nicht angegeben, welches Modul verwendet werden soll.Dies kann zu unerwartetem Verhalten führen, wenn widersprüchliche Übersetzungen vorliegen.Verbessern:

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

Dies hängt jedoch nicht mit Ihrem Problem zusammen

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit magento.stackexchange
scroll top