Ankündigung

Einklappen
Keine Ankündigung bisher.

Anpassung und Übersetzung von Konfigurationseinstellungen aus englischen Modulen

Einklappen
Das ist ein wichtiges Thema.
X
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    Anpassung und Übersetzung von Konfigurationseinstellungen aus englischen Modulen

    Ich habe mal eine Frage an die Fachleute hier. Aus der amerikanischen Seite habe ich ein paar Module geholt, um sie für die deutsche Version zu übersetzen. Beispielsweise das Modul Encrypted Master Password. In dem File befindet sich unter anderem eine Datei, (encrypted_master_password-2.0.0\YOUR_ADMIN\includes\functions\extra_function s) welche Einträge in die Datenbank vornimmt. Die liest sich auszugsweise so:

    Code:
    if (!defined ('EMP_LOGIN_ADMIN_ID')) {
      $db->Execute ("INSERT INTO " . TABLE_CONFIGURATION . "
                      (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, last_modified, date_added) 
                      VALUES ('Encrypted Master Password: Single Admin ID', 'EMP_LOGIN_ADMIN_ID', '1', 'Specify the ID of an admin user that is permitted to use the Encrypted Master Password feature. Set the value to 0 to disable the <em>Single Admin ID</em> feature.<br /><br /><b>Default: 1</b><br />', 1, '300', NOW(), NOW())");
    Nun ist das ja alles in englisch, aber es soll ja auch in deutsch sichtbar sein. Natürlich könnte man alles in deutscher Sprache eintragen, aber dann würde es auch in der englischen Version auf deutsch angezeigt. In den SQL-Dateien der deutschen Zen Cart Version gibt es ja auch immer eine deutsche Übersetzung, aber dort sind die Eingabebefehle anders.

    Frage: Gibt es eine Möglichkeit, oben genannte Datenbankbefehle auch über eine entsprechende Eingabe in deutsch zu generieren? Es wäre schön, wenn ich hier mal einige Informationen bekommen könnte. Dann könnte ich die Module bearbeiten und hier zur Verfügung stellen.

    #2
    Hallo klartexter,

    schön, dass Du englische Module für die deutsche Version anpassen und zur Verfügung stellen willst!

    Die deutsche Zen Cart Version hat eine zusätzliche Datenbanktabelle namens configuration_language, in der die Übersetzungen für die Konfigurationseinstellungen hinterlegt werden. Diese Tabelle ist auch ansprechbar als TABLE_CONFIGURATION_LANGUAGE und enthält als wichtigste Spalten:
    configuration_title = Name für den Konfigurationseintrag
    configuration_key = Der Schlüssel für den Konfigurationseintrag, z.B. SHOW_BASE_UNIT_PRICE
    configuration_language_id = Die Sprache, die verwendet werden soll, normalerweise 43 für deutsch
    configuration_description = Beschreibungstext, der dann rechts beim Konfigurationseintrag erscheint.

    In der deutschen Zen Cart Version wird in der Administration immer ausgelesen, ob es zu einem Konfigurationseintrag wie z.B. SHOW_BASE_UNIT_PRICE in der Tabelle configuration_language einen Eintrag für die Sprache gibt, auf die der Admin gerade geschaltet ist und falls ja, dann wird eben die Übersetzung angezeigt

    Es gibt 2 Arten von SQL Installern, die bei den Modulen verwendet werden:

    1)
    SQL Befehle, die über Tools > SQL Patches installieren eingespielt werden müssen oder direkt via phpmyadmin.
    Das wird von den meisten Modulen so gemacht, sie enthalten dann eine install.sql, die man mit einem Texteditor öffnet, und den Inhalt kopiert und absendet.

    Bei solchen Modulen ist es recht simpel.
    Hier am Beispiel der Grundpreisanzeige:

    Hiermit wird der Konfigurationseintrag auf englisch angelegt und auch die entsprechenden Einstellungswerte:
    Code:
    INSERT INTO configuration (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, last_modified, date_added, use_function, set_function) VALUES ('Show Base Unit Price', 'SHOW_BASE_UNIT_PRICE', '0', 'Do you want to show the base unit price<br />0= off<br />1 = everywhere : product listing, all products, new products, product info<br />2 = Only on product info page', 19, 50, now(), now(), NULL, 'zen_cfg_select_drop_down(array(array(\'id\'=>\'0\', \'text\'=>\'Off\'), array(\'id\'=>\'1\', \'text\'=>\'Everywhere\'), array(\'id\'=>\'2\', \'text\'=>\'Product info only\')),
    ');
    Damit der Konfigurationseintrag SHOW_BASE_UNIT_PRICE nun auch im deutschen Admin auf deutsch erscheint, muss er noch in der Tabelle configuration_language hinterlegt werden.

    Also kommt noch folgender Befehl dazu:

    Code:
    INSERT INTO configuration_language (configuration_title, configuration_key, configuration_language_id, configuration_description, last_modified, date_added) VALUES ('Grundpreisanzeige', 'SHOW_BASE_UNIT_PRICE', '43', 'Wollen Sie den Grundpreis anzeigen?<br />0 = Nein<br />1 = auf allen Seiten (Artikelliste, Alle Artikel, Neue Artikel, Artikeldetailseite)<br />2 = Nur auf der Artikeldetailseite
    ', now(), now());
    Die Konfigurationswerte sind ja schon vorhanden, das ist also eine reine Sprachtabelle rein für die Übersetzung.

    Das ganze ginge natürlich zusätzlich auch, wenn der Admin auf französisch ist und eine französische Beschreibung angezeigt werde soll, indem derselbe Eintrag mit der entsprechenden französischen Übersetzung und der configuration_language_id 33 eingespielt wird.

    2)
    Autoinstaller
    Manche Module legen die Datenbankeinträge automatisiert durch Aufrufen der Administration an. Hier werden meistens Dateien wie DEINADMIN/includes/extra_functions/irgendwas.php oder DEINADMIN/includes/init_includes/irgendwas.php verwendet, weil die bei jedem Aufruf der Administration geladen werden.
    Hier ist es im Endeffekt genau dasselbe, wenn auch vielleicht etwas schwieriger, weil die Syntax genau beachtet werden muss.
    In Deinem Master Passwort Modul wird abgefragt ob der Konfigeintrag EMP_LOGIN_ADMIN_ID bereits vorhanden ist und falls nicht, wird er auf englisch angelegt:

    Code:
    if (!defined ('EMP_LOGIN_ADMIN_ID')) {
      $db->Execute ("INSERT INTO " . TABLE_CONFIGURATION . "
                      (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, last_modified, date_added) 
                      VALUES ('Encrypted Master Password: Single Admin ID', 'EMP_LOGIN_ADMIN_ID', '1', 'Specify the ID of an admin user that is permitted to use the Encrypted Master Password feature. Set the value to 0 to disable the <em>Single Admin ID</em> feature.<br /><br /><b>Default: 1</b><br />', 1, '300', NOW(), NOW())");
    Um nun die passende deutsche Übersetzung anzulegen, könntest Du ihn z.B. so ergänzen:

    Code:
    if (!defined ('EMP_LOGIN_ADMIN_ID')) {
      $db->Execute ("INSERT INTO " . TABLE_CONFIGURATION . "
                      (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, last_modified, date_added) 
                      VALUES ('Encrypted Master Password: Single Admin ID', 'EMP_LOGIN_ADMIN_ID', '1', 'Specify the ID of an admin user that is permitted to use the Encrypted Master Password feature. Set the value to 0 to disable the <em>Single Admin ID</em> feature.<br /><br /><b>Default: 1</b><br />', 1, '300', NOW(), NOW())");
      $db->Execute ("REPLACE INTO " . TABLE_CONFIGURATION_LANGUAGE . "          
                     (configuration_title, configuration_key, configuration_language_id, configuration_description, last_modified, date_added) 
                     VALUES ('Verschlüsseltes Master Passwort', 'EMP_LOGIN_ADMIN_ID', '43', 'Geben Sie die ID eines Admin Users an, der die Master Passwort Funktion nutzen darf, usw. usw.', now(), now())");
    Nach diesem Prinzip lassen sich alle englischen Module multilingual in der deutschen Zen Cart Version verwenden.

    Grüße

    webchills

    Kommentar

    Info zu diesem Forenarchiv:
    Mit Release von 1.5.7 wurde die deutsche Zen Cart Version auf eine reine DIY-Lösung umgestellt.
    Für einen Support via Forum stehen keine personellen und zeitlichen Ressourcen mehr zur Verfügung.
    Dieses Supportforum bleibt im Nur-Lesen-Modus als Wissensarchiv noch online verfügbar.
    PM Funktionalität, Registrierung und Posten neuer Beiträge sind deaktiviert.
    Zugriff auf Anhänge in den Postings ist auch ohne Registrierung/Einloggen möglich.
    FAQ und Downloadbereich des Forums wurden in die neue umfangreiche Knowledgebase auf der zen-cart-pro.at Website übernommen.

    Das Development der deutschen Zen Cart Version geht wie bisher auf Github weiter.
    Wir werden auch weiterhin neue Versionen bereitstellen und die Onlinedokumentation/Knowledgebase aktualisieren.
    Fehler in der Software können auf Github als Issues gemeldet werden.
    Follow us
    aktuelle version
    Zen Cart 1.5.7g deutsch
    vom 12.12.2023
    [Download]
    Lädt...
    X