Übersetzungen in Oxid Modulen

In meinen letzten beiden Oxid Beiträgen habe ich mir nicht die Mühe gemacht, die benötigten Übersetzungen gleich mit einzutragen. Das möchte ich heute kurz nachholen und die möglichen Vorgehensweisen kurz erläutern.

Die deutsche Übersetzung befindet sich in unserem Fall in dem Ordner /out/azure/de/lang.php. Diese Datei sollte man aber nicht editieren, da bei einem späteren Update sämtliche Änderungen wieder überschrieben werden würden. Stattdessen hat man von Oxid die Datei cust_lang.php für eigene Ergänzungen oder Änderungen (cust_lang.php überschreibt vorhandene Einträge in lang.php) vorgesehen. /out/azure/de/cust_lang.php sollte also so aussehen:

$sLangName  = "Deutsch";
// -------------------------------
// RESOURCE IDENTITFIER = STRING
// -------------------------------
$aLang = array(
    'charset'             => 'ISO-8859-15',
    'DETAILS_PRICESAVING' => 'Preisersparnis',
);

/*
[{ oxmultilang ident="GENERAL_YOUWANTTODELETE" }]
*/

Dann noch schnell den /tmp Ordner gelöscht und die Übersetzung erscheint auch auf der Webseite.

Preisersparnis

Noch etwas eleganter wird es, wenn man eine eigene Sprachdatei für sein Modul anlegt. So kann man seine Moduldateien mit Hilfe von Symlinks nämlich in einem Ordner zusammenhalten. Damit die eigene Sprachdatei bei der Übersetzung berücksichtigt wird, sind nur zwei Dinge zu beachten:
1) Die Datei muss mit _lang.php enden
2) In der Datei muss ein charset angegeben werden.

In meinem Beispiel habe ich die Datei udoPriceSaving_lang.php mit folgendem Inhalt in den Ordner /out/azure/de gepackt:

<?php
/**
 * PHP version 5.3.6
 *
 * @author      Udo Telaar <post@udo-telaar.de>
 * @license     GPLv3
 * @copyright   Copyright (c) 2012 Udo Telaar
 * @link        http://www.udo-telaar.de
 * @version     $Id:$
 *
 * This program is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.

 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.

 * You should have received a copy of the GNU General Public License
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */

$sLangName  = "Deutsch";

$aLang = array(
    'charset'             => 'UTF-8',
    'DETAILS_PRICESAVING' => 'Preisersparnis',
);

Wenn man das ganze, wie oben kurz beschrieben, per Symlink lösen möchte, um seine Moduldateien in einem Ordner zu konzentrieren, kann man die Datei auch z.B. in /modules/udoPriceSaving/out/azure/de ablegen und per Symlink einbinden:

udo:/htdocs/out/azure/de$ ln -s ../../../modules/udoPriceSaving/out/azure/de/udoPriceSaving_lang.php udoPriceSaving_lang.php

Um die Phrasen im Adminbereich zu übersetzen, kann man sich der gleichen Vorgehensweise bedienen, nur müssen die Modifikationen im Ornder /out/admin/…, statt /out/azure… vorgenommen werden.

Weitere Infos zu den Übersetzungen findet man auch auf der Oxid Webseite.



0 Kommentare

Dein Kommentar

An Diskussion beteiligen?
Hinterlasse uns Deinen Kommentar!

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.