Nun sind wir im letzten Teil unseres Tutorials angelangt. Zum Schluß wollen wir unsere Erweiterung noch für die Verwendnung in mehreren Sprachen vorbereiten.

1. Dateistruktur anpassen

app/
   etc/
      modules/
        - Mxperts_All.xml (Oder Ihre Firmenname IhreFirme_All.xml)
   code/
      local/
         Mxperts/ (Oder Ihre Firmenname IhreFirme_All.xml)
            Tutorial/ (Bezeichnung Ihrer Erweiterung)
               Block/
                 - Index.php
                 Admin/
                   - Main.php
                   Main/
                     - Grid.php
                   - New.php
                   New/
                     - Form.php
                   - Edit.php
                   Edit/
                     - Form.php
               controllers/
                 - AdminController.php
                 - IndexController.php
               etc/
                 - config.xml
               Helper/
                 - Data.php
               Model/
                 - Tutorial.php
                 Mysql4/
                   - Tutorial.php
                   Tutorial/
                     - Collection.php
               sql/
                 tutorial_setup/
                    - mysql4-install-0.2.0.php
                    - mysql4-upgrade-0.1.0-0.2.0.php
  locale/
    en_US
      - Mxperts_Tutorial.csv
    de_DE
      - Mxperts_Tutorial.csv

Erklärung:
Im Verzeichnis app/locale befinden sich die Sprachfiles in den jeweiligen Verzeichnissen wie en_US,de_DE oder de_CH, etc. Wir verwenden für unser Module den Dateinamen Mxperts_Tutorial.csv, der in der config.xml noch definiert werden muss. Für jede Sprache die übersetzt werden soll muss diese Datei jeweils erstellt werden. IN unserem Fall erstellen wir nur en_US und de_DE.

2. config.xml anpassen

<?xml version="1.0"?>
<config>
    <modules>
        <Mxperts_Tutorial>
            <version>0.2.0</version>
        </Mxperts_Tutorial>
    </modules>

    <global>

        <models>
            <tutorial>
                <class>Mxperts_Tutorial_Model</class>
                <resourceModel>tutorial_mysql4</resourceModel>
            </tutorial>
            <tutorial_mysql4>
                <class>Mxperts_Tutorial_Model_Mysql4</class>
                <entities>
                    <tutorial>
                        <table>tutorial</table>
                    </tutorial>
                </entities>
            </tutorial_mysql4>
        </models>

         <helpers>
            <tutorial><class>Mxperts_Tutorial_Helper</class></tutorial>
        </helpers>

        <blocks>
            <tutorial>
                <class>Mxperts_Tutorial_Block</class>
            </tutorial>
        </blocks>

        <resources>
            <tutorial_setup>
                <setup>
                    <module>Mxperts_Tutorial</module>
                </setup>
                <connection>
                    <use>core_setup</use>
                </connection>
            </tutorial_setup>
            <tutorial_write>
                <connection>
                    <use>core_write</use>
                </connection>
            </tutorial_write>
            <tutorial_read>
                <connection>
                    <use>core_read</use>
                </connection>
            </tutorial_read>
        </resources>

    </global>

    <adminhtml>
        <menu>
            <tutorial translate="title" module="tutorial">
                <title>Tutorial</title>
                <sort_order>100</sort_order>
                <action>tutorial/admin</action>
            </tutorial>
        </menu>
        <translate>
            <modules>
                <Mxperts_Tutorial>
                    <files>
                        <default>Mxperts_Tutorial.csv</default>
                    </files>
                </Mxperts_Tutorial>
            </modules>
        </translate>
    </adminhtml>

    <frontend>
        <routers>
            <Mxperts_Tutorial>
                <use>standard</use>
                <args>
                    <module>Mxperts_Tutorial</module>
                    <frontName>tutorial</frontName>
                </args>
            </Mxperts_Tutorial>
        </routers>
        <translate>
            <modules>
                <Mxperts_Tutorial>
                    <files>
                        <default>Mxperts_Tutorial.csv</default>
                    </files>
                </Mxperts_Tutorial>
            </modules>
        </translate>
    </frontend>

</config>

Datei: app/locale/en_US/Mxperts_Tutorial.csv

ID,ID
Name,Name
Tags,Tags
Summary,Summary
Single element,Single element
List of %s elements,List of %s elements
Edit Element'%s,Edit Element'%s
Add New,Add New
Element(s),Element(s)
Add New Element,Add New Element
Element Details,Element Details
Action,Action
Edit,Edit
Delete,Delete
Item Details,Item Details

Datei: app/locale/de_DE/Mxperts_Tutorial.csv

ID,ID
Name,Bezeichnung
Tags,Tags
Summary,Zusammenfassung
Single element, Einzelnes Element
List of %s elements,Liste von %s Elementen
Edit Element'%s,Bearbeite Elemente %s
Add New,Neu
Element(s),Element(e)
Add New Element,Neues Element erstellen
Element Details,Element Detailansicht
Action,Aktion
Edit,Bearbeiten
Delete,Löschen
Item Details, Element Details

Nun sind die Bezeichnungen für beliebige Sprachen erweiterbar. Hier sehen Sie auch wie die Defintion von Sprachfiles funktioniert. Wenn Sie nun eine Erweiterung verwenden die ohne Sprachfiles und ohne Sprachunterstützung ausgeliefert wurde, sind Sie nun in der Lage diese nachzurüsten.

Ich hoffe Sie hatten Spaß mit meinem Tutorial und ich freue mich auf Ihr reges Feedback. Wenn Sie aus diesem Tutorial Ihre eigenen Erweiterungen abgeleitet haben, können wir diese hier gerne Vorstellen.

Download des fertigen Tutorials: mxpert_ext_tut_10

Extensions Tutorial: Teil 9 – Frontend Output