Neuigkeiten
  • Die modified eCommerce Shopsoftware ist kostenlos, aber nicht umsonst.
    Spenden
  • Damit wir die modified eCommerce Shopsoftware auch zukünftig kostenlos anbieten können:
    Spenden
  • Thema: Innerhalb von PHP auf Texte aus der Sprachdatei zugreifen

    derluke

    • Neu im Forum
    • Beiträge: 44
    Hallo zusammen,

    ich kann ja im Template einfach via Marker auf Textbausteine der jeweilige Sprache zugreifen (z.b. lang_german.conf). Da ich gerade einen Shop mit 4 Sprachen erstelle, verwende ich einige Marker.

    Jetzt ist es so, dass ich teilweise innerhalb der PHP Dateien diese Marker verwenden muss, in meinem Template sehen die z.b. so aus: einkaufen_index = 'Einfach & sicher Einkaufen'. Im Template kann ich den Text dann einfach via {#einkaufen_index#} platzieren.

    Wie kann ich innerhalb von PHP (z.b. templates/xtc5/source/boxes/special.php) auf diese Language Texte zugreifen bzw. auf meinen Textbaustein einkaufen_index?

    Vielen Dank!

    Linkback: https://www.modified-shop.org/forum/index.php?topic=30405.0

    ShopNix

    • Viel Schreiber
    • Beiträge: 1.208
    Re: Innerhalb von PHP auf Texte aus der Sprachdatei zugreifen
    Antwort #1 am: 17. Juni 2014, 18:54:32
    Du könntest Dir meinen Translator bei SourceForge ziehen. Dort findest Du unter sxTools/functions.php das Prinzip in praktischer Anwendung.

    Hier ein passender Schnipsel:

    Code: PHP  [Auswählen]
    function readTargetSmartyTerms() {
            global $db;
            $qry = "select section from sxt_smarty_sections";
            $res = $db->query($qry) or print(mysql_error()."<br/>");
            require(SX_SMARTY_PATH.'Smarty.class.php');
            $smarty = new Smarty();
            $smarty->setCompileDir(SX_SMARTY_COMPILE_DIR);
            while ($row = $db->fetch($res)) {
                    $smarty->configLoad(SX_LANG_PATH.SX_TGT_LANG.'/lang_'.SX_TGT_LANG.'.conf', $row['section']); // Smarty 3.x
                    $vars = $smarty->getConfigVars();
                    $smarty->clearConfig();
                    foreach ($vars as $key => $val) {
                            $val = mysql_real_escape_string($val);
         
                            $uQry= "update sxt_terms set comment = '".mysql_real_escape_string($val)."' where ".
                                    "lang = '".SX_SRC_LANG."' and ".
                                    "path = '/lang_".SX_SRC_LANG.".conf' and ".
                                    "context = '".$row['section']."' and ".
                                    "constant = '$key'";    
                            echo "\n".$uQry."\n\n";
                            $db->query($uQry);
                    }  

            }  
    }

    Ich weiß nicht mehr, warum ich Smarty 3 verwendet habe, denn diese Version hat Probleme mit den Kommentarzeichen der älteren Version, die im Shop läuft. Könnte sein, dass die Syntax ein wenig anders ist.

    Welche Sprachen hast Du denn geplant?

    Tomcraft

    • modified Team
    • Gravatar
    • Beiträge: 46.369
    • Geschlecht:
    Re: Innerhalb von PHP auf Texte aus der Sprachdatei zugreifen
    Antwort #2 am: 17. Juni 2014, 19:35:02
    [...]
    Wie kann ich innerhalb von PHP (z.b. templates/xtc5/source/boxes/special.php) auf diese Language Texte zugreifen bzw. auf meinen Textbaustein einkaufen_index?
    [...]

    Zu jeder PHP-Datei einer Box gehört eine entsprechende HTML-Datei, in der Du dann wieder deine Marker benutzen kannst. :!:

    Grüße

    Torsten

    hpzeller

    • Experte
    • Beiträge: 4.129
    • Geschlecht:
    Re: Innerhalb von PHP auf Texte aus der Sprachdatei zugreifen
    Antwort #3 am: 17. Juni 2014, 20:33:07
    Hallo derluke

    Eine konkrete Umsetzung deines Problems anhand deines Beispiels für die "templates/xtc5/source/boxes/special.php"

    Code: PHP  [Auswählen]
    // Hier werden die Marker innerhalb der Sektion "boxes" geladen.
    $box_smarty->config_load($_SESSION['language'] . '/lang_' . $_SESSION['language'] . '.conf', 'boxes');

    // Hier wird der Wert eines einzelner Markers "einkaufen_index" einer Variablen zugewiesen.
    $einkaufen_index_aus_sprach_conf = $box_smarty->get_config_vars('einkaufen_index');

    Hier weiter Info-Links
    http://www.smarty.net/docsv2/de/api.config.load.tpl
    http://www.smarty.net/docsv2/de/api.get.config.vars.tpl

    Gruss
    Hanspeter

    derluke

    • Neu im Forum
    • Beiträge: 44
    Re: Innerhalb von PHP auf Texte aus der Sprachdatei zugreifen
    Antwort #4 am: 18. Juni 2014, 13:26:15
    Vielen Dank, die Antwort von hhpzeller halt geholfen, klasse!!
    1 Antworten
    1996 Aufrufe
    17. Januar 2016, 19:09:45 von karsta.de
    4 Antworten
    3789 Aufrufe
    09. Juni 2010, 09:01:34 von mikeSo
    5 Antworten
    4740 Aufrufe
    15. November 2012, 11:14:03 von noRiddle (revilonetz)