Übersetzung: load_plugin_textdomain nach isset($_POST['Button]) verwenden!

  • Hallo Zusammen,

    ich komme leider zum Schluss, dass eine Übersetzung nach POST nicht funktioniert!? Kann mir das jemand bestätigen, weil ich finde zum Thema nichts.

    Ich habe folgenden Code am Anfang der PHP plugin Datei:


    PHP
    <?php 
    add_action('plugins_loaded', 'myPlugin_PollForm_load_textdomain');
    function myPlugin_PollForm_load_textdomain() {
        load_plugin_textdomain("myPlugin-PollForm", false, dirname( plugin_basename(__FILE__) ) . '/lang/' );
    }
    ?>

    Im weiteren habe ich eine Funktion, die mir HTML Code des Plugins erstellt. Dort funktioniert der Aufruf von Übersetzungsfunktion. Zum Beispiel:

    PHP
    <?php echo __('Antworten Senden', 'myPlugin-PollForm');?>

    Wenn ich aber nach POST versuche etwas zu übersetzen, dann geht es überhaupt nicht. Beispiel:

    Code
    if (isset($_POST['BT_Senden'])) 
    {
       echo __("Danke. Die Daten wurden erfolgreich gespeichert."."\n", "myPlugin-PollForm"); 
    }

    Weiss jemand vielleicht warum das nicht funktioniert und wie ich es zum Laufen bringen kann?

    Danke schon mal im Voraus.

    Sascha

    • Anzeige

    Hallo!

    Wenn du gerade an deiner Website arbeitest oder dein aktuelles Hosting überdenkst: Wir betreiben mit NetzLiving eine Hosting-Plattform, die speziell auf Performance, Sicherheit und einfache Verwaltung ausgelegt ist.

    • ✔️ Schnelle Ladezeiten (optimiert für WordPress & Co.)
    • ✔️ Deutsche Server & DSGVO-konform
    • ✔️ Persönlicher Support (kein 0815-Ticket-System)

    Mehr erfahren

  • Sorry,

    Übersetzungsdateien sind vorhanden und liegen im Subordner /lang/.

    Ich habe eine Platzhalterfunktion, die mir den HTML Code für die Worpress-Seite generiert (wenn man natürlich den Platzhalter dort einfügt). In dieser Funktion habe ich sehr viele Stellen, die ich übersetze (z.B. von Deutsch nach Englisch) und das funktioniert alles problemlos. Wenn ich also auf der Wordpress Seite die Sprache ändere, wird gleich alles in der Sprache geladen, die ich ausgewählt habe. Also alles ausgezeichnet.

    Ich habe aber auf der Wordpress-Seite noch ein SEND Button mit dem ich dort eingetragene Informationen an den Server sende. Das tue ich, weil ich eingetragene Informationen einmal per Email senden will und anschließend aber auch in die mySQL Datenbank speichern möchte. Die Informationen die ich per Email schicke übersetze ich logischerweise nicht (wie sollte das dann auch gehen :) ) aber die Fragen, zu denen diese eingegebene Informationen gehören, die übersetze ich (das sind eben genau die Fragen, die sich in der Wordpress-Seite befinden und die per diesen Plugin generiert werden).

    Im Plugin habe ich also die Stelle:

    Code
    if (isset($_POST['BT_Senden'])) 
    {
       $Variable = __("Danke. Die Daten wurden erfolgreich gespeichert."."\n", "myPlugin-PollForm"); 
    }

    wo ich das abfrage was vom Client kommt und in eine Variable speichere, die ich dann in der Email Nachricht einfüge. Und genau hier funktioniert der Aufruf der Übersetzungsfunktion nicht, weil ich per Email nur den deutschen Text kriege egal was ich für eine Sprache auswähle!


    Ich hoffe, dass man jetzt etwas besser nachvollziehen kann, was ich meine?

    Danke in jedem Falle.

    Sascha


  • Ich habe folgenden Code am Anfang der PHP plugin Datei:


    Code
    load_plugin_textdomain("myPlugin-PollForm", false, dirname( plugin_basename(__FILE__) ) . '/lang/' );


    Code
    load_plugin_textdomain( 'myPlugin-PollForm', false, plugin_basename( dirname( __FILE__ ) ) . DIRECTORY_SEPARATOR . 'lang' . DIRECTORY_SEPARATOR );

    Mit offenen Augen träumen

  • Ich hoffe, dass diese Antwort erscheint. Habe schon mehrmals versucht, aber aus irgendeinem Grund erscheinen meine Antworte nicht!

    @b3317133[COLOR=#3E3E3E] : Kann Dir PN nicht schicken, weil Dein Postfach voll ist.
    [/COLOR]
    Also,

    ich habe den Platzhalter, den ich in die WP-Seite eingefügt habe [myPlugin-Poll-Form_DE]. Im PHP Code habe ich dann diesen Platzhalter definiert:

    Code
    add_shortcode('myPlugin-Poll-Form_DE', 'func_PollForm_myPlugin_MainPollFormDE' );

    Nun in der Funktion func_PollForm_myPlugin_MainPollFormDE erstelle ich das HTML Formular für die WP-Seite wo ich unter anderem auch den Send-Button habe:

    PHP
    <form name="myForm" action="<?php $_SERVER['PHP_SELF'] ?>#email_status"  enctype="multipart/form-data" method="post" onSubmit="return validateForm()">
    .
    .
    .
    			<input class="et_pb_button  et_pb_button_0 et_pb_module et_pb_bg_layout_light"  name="BT_Senden" type="submit" 
    				   value="<?php echo __('Antworten Senden', 'myPlugin-PollForm'); ?>"

    Weiter oben in der selben PHP Datei habe ich dann diesen Button-Abfrage Code

    Code
    if (isset($_POST['BT_Senden'])) 
    {
    .
    .
    .
    }


    Nun die Übersetzungen, die ich in der Funktion func_PollForm_myPlugin_MainPollFormDE habe funktionieren alle. Die Übersetzungen, die ich aber in der POST Abfrage des Buttons habe, funktionieren nicht!

    Kann es sein, dass add_action('plugins_loaded', 'myPlugin_PollForm_load_textdomain'); zu spät aufgerufen wird für POST Abfrage?

    Danke

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!