Eigene Multilang Tabellen richtig erstellen

Hallo zusammen,

ich stehe vor dem Problem das ich eine eigene multilang Tabelle erstellen will.
OXID erstellt ja grundsätzlich 4 Sprachen auch wenn diese nicht benutzt werden.
Also hab ich bei meinem create Table auch 4 Felder angelegt.

Jetzt zu meinem Problem, was ist wenn der Shop mehr sprachen hat?
Wie stell ich das am besten an das beim erstellen der Tabelle alle benötigten Sprachfelder hinzugefügt werden.

Hallo Bernd,

fahrt Ihr eine Version > 4.5.1? Dann sollte dieser hier helfen:

Habt Ihr vielleicht Lust, Eure Sprachdatei-Übersetzungen hier zu verwalten?
http://translate.oxidforge.org/

Gruß

Hi Marco,

kannte ich noch nicht, mal anschauen.

Leider hilft mir das alles bei meinem eigentlichen Problem nicht weiter, es geht um Datenbanktabellen und nicht die Übersetzungsdateien.

Du kannst versuchen 4 oder 5 Sprachen im backend anzulegen und dann gucken wo sie “hingetan” werden

Moin,

Loggisch nicht, das war ja auch nur Zusatzinfo und Werbung für das Projekt :wink:

Mir ist noch nicht so recht klar, was Du vorhast.

Beim Anlegen einer neuen Sprache wird ein neues Feld, z.B. für oxtitle angelegt, das dann mit einer fortlaufenden Nummer versehen wird, z.B. oxtitle_1 für Englisch, dann oxtitle_2 für Russisch etc… Diese Felder befüllst Du dann einfach mit den Übersetzungen und fertig. Werden mehr als vier Sprachen benötigt, wird ab der 4.5.1 ein zusätzliches Feld vom Shop angelegt, also z.B. oxtitle_7 für die achte Sprache.
Wenn Du eine eigene multilang-Tabelle aufbauen willst (wozu???), könntest Du Dir den vorhandenen Mechanismus zunutze machen.

Gruß

Dafür muss aber $this->aMultiLangTables in der config.inc.php der Name deiner sostum Tabelle stehen, sonst erweitert OXID deine custom Tabelle nicht um die Sprache.
Nur zur Info.

Was ich vorhabe:
Also ich habe ein Module geschrieben das eine Tabelle mit Felder nach dem OXID Lang Prinzipes benutzt. Also OXVALUE, OXVALUE_1 usw.
Jetzt ist es aber so das bei der Installation des Modules diese Felder automatisch angelegen soll anhand der Aktuell verfügbaren Sprachen im Shop.
Und meine Frage ist: Wie komme ich per SQL(nicht im OXID Framework, das weiß ich wie ich da rankomme) an die Aktuell im Shop vorhandenen Sprachen, damit ich im create TBL statement diese Sprachen auch anlegen kann.

Alles klar ? :confused:

Hallo,

wir hatten heute ein ähnliches Problem. Um die Views (fast) automatisch vom Modul anlegen zu lassen, kann man die oxlang Klasse erweitern:


<?php
class BannersPlus_OxLang extends BannersPlus_OxLang_parent
{
    public function getMultiLangTables()
    {
        return array_merge(array('oxbannersplus'), parent::getMultiLangTables());
    }
}
?>

Beim Klick auf Service > Tools > Views updaten, werden alle Views (inkl. die vom Modul) angelegt bzw. ersetzt.

lg

Dave

Hi,

soweit ich das verstehe, ist das nicht nötig(bei aktuelleren Versionen zumindest). Denn ein Eintrag in $this->aMultiLangTables in der config.inc.php macht genau das, was du mit dem Module bezweckst.

Hallo,

ja. ist klar, aber mit der Modulerweiterung kann man die Modulinstallation etwas vereinfachen. Mir gefällt’s persönlich nicht wenn ich bei der Installation eines Moduls eine, oder mehrere Konfigurationsdateien/Templates ändern bzw. kopieren muss. Mit 4.6 ist einiges besser geworden (metadata.php), ist aber allerdings noch nicht perfekt.

lg

Dave