Deutsche Sprache für wp-ban 1.31, wie einstellen?

  • Hallo, ich habe Wordpress auf 2.6 DE aktuallisiert und gleich noch das Plugin wp-ban 1.31 installiert und aktiviert. Was ich nicht hin bekomme, ist die deutsche Sprache dafür zu aktivieren, bzw. ein zu stellen.
    Zwei Dateien habe ich mit in den Plugin Ordner kopiert:

    wp-ban-de_DE.mo
    wp-ban-de_DE.po

    aber es wird noch immer alles in englisch angezeigt, in den Einstellungen.

    Was mache ich das falsch, bzw. wer bekommt das deutsch bei sich eingestellt, der das Plugin nutzt?

    Urgixgax

    • 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

  • Ich kenne das Plugin nicht, und Nein: ich will es auch nicht testen. Aber es gibt nur zwei Möglichkeiten.

    1. Du hast geprüft, dass deine Spracheinstellung auch tatsächlich "de_DE" ist, denn sonst wird das mit dieser Sprachdatei nichts:

    wp-ban-de_DE.*

    2. Das Plugin ist noch nicht für WP 2.6 ausgelegt. Die Funktion, mit der man Sprachdateien in Plugins lädt, hat sich nämlich verändert und kennt jetzt 3 Parameter.

    PHP
    function load_plugin_textdomain($domain, $abs_rel_path = false, $plugin_rel_path = false)


    Der erste ist nach wie vor die Sprachdomain (also "wp-ban" in deinem Fall). Der zweite bezieht sich auf den neuen Pfad, ausgehend von WP_PLUGIN_DIR (neue Konstante in 2.6), und der dritte ist quasi die alte Version, ausgehend von ABSPATH.


    Du solltest also nach einem Update des Plugins schauen, oder du änderst die Datei entsprechend um. Sprich: Editor öffnen und in der PHP-Datei nach der o.g. Funktion "load_plugin_textdomain" suchen.

  • Hallo und Danke, für die Antwort!

    Also die Sprachdatei, sollte deutsch sein, zumindest heisst sie so und bekommen habe ich sie von hier !

    Woran sehe ich, dass die Datei, vielleicht nur de_DE heisst, aber nicht deutsch ist?

    In der PHP Datei, komme ich nicht wirklich weiter, da der Code wie folgt aussieht und ich da vorsichtshalber nichts geändert habe:

    Code
    ### Create Text Domain For Translation
    add_action('init', 'ban_textdomain');
    function ban_textdomain() {
        if (!function_exists('wp_print_styles')) {
            load_plugin_textdomain('wp-ban', 'wp-content/plugins/wp-ban');
        } else {
            load_plugin_textdomain('wp-ban', false, 'wp-ban');
        }
    }

    Urgixgax

    Das ist sicher hier etwas ot aber ich versteh da bei den Plugins, nun bei Wordpress 2.6 etwas nicht.
    In den Einstellungen bei Wordpress, steht neben "Plugins" eine 1. Wozu? Es war auch schon mal eine 6 oder eine 3.

    Dann lese ich bei den "Inaktive Plugins":

    "There is a new version of WP-ContactForm available. Download version 1.13 here. Remind me again next week." Nur führt der Link den man dort klicken kann, zum Flexible upload Plugin.

    Alles sehr merkwürdig, für mich ...

  • Woran sehe ich, dass die Datei, vielleicht nur de_DE heisst, aber nicht deutsch ist?


    Das habe ich nicht gemeint. In deiner "wp-config.php" sollte der Eintrag "de_DE" als Sprache stehen, und die WordPress-Sprachdatei sollte dann eben auch "de_DE.mo" heißen. Der Name der Sprachdatei für Plugins bildet sich nämlich aus der jeweiligen Sprachdomain und dem Sprachkürzel (eben de_DE); eben "wp-ban-de_DE.mo".

    Zum PHP-Code, ich denke, dass hier das Problem zu suchen. Probier's mal so

    PHP
    function ban_textdomain() {
          load_plugin_textdomain( 'wp-ban', 'wp-ban' );
    //    if (!function_exists('wp_print_styles')) {
    //        load_plugin_textdomain('wp-ban', 'wp-content/plugins/wp-ban');
    //    } else {
    //        load_plugin_textdomain('wp-ban', false, 'wp-ban');
    //    }
    }

    Die Originalzeilen bitte nur auskommentieren.

    Sinn der Sache, die neue Syntax der Funktion. Wie gesagt ist der zweite Parameter ein relativer Pfad, ausgehend von WP_PLUGIN_DIR. Und der setzt sich in der Standardeinstellung (wenn man es in "wp-config.php" nicht ändert!) zusammen aus

    PHP
    define( 'WP_PLUGIN_DIR', WP_CONTENT_DIR . '/plugins' );


    Du brauchst also nur noch den Ordner des Plugins.

  • Also wegen der Sprache, in meiner "wp-config.php" ist "de_DE" eingetragen.

    Das mit dem "eindeutschen" von wp-ban klappt nicht.

    Ich habe in der wp-ban.php den Code

    PHP
    function ban_textdomain() {
        if (!function_exists('wp_print_styles')) {
            load_plugin_textdomain('wp-ban', 'wp-content/plugins/wp-ban');
        } else {
            load_plugin_textdomain('wp-ban', false, 'wp-ban');
        }
    }

    durch

    PHP
    function ban_textdomain() {
          load_plugin_textdomain( 'wp-ban', 'wp-ban' );
    //    if (!function_exists('wp_print_styles')) {
    //        load_plugin_textdomain('wp-ban', 'wp-content/plugins/wp-ban');
    //    } else {
    //        load_plugin_textdomain('wp-ban', false, 'wp-ban');
    //    }
    }

    ersetzt, aber es ändert sich nichts.

  • In welchem Ordner hast du denn das Plugin? In "wp-content/plugins/wp-ban"? Dann sollte es so wie von mir gezeigt gehen. Wenn dein Ordner irgendwie anders aussieht, musst du den zweiten Parameter anpassen.

  • In welchem Ordner hast du denn das Plugin? In "wp-content/plugins/wp-ban"?

    Ja da ist das Plugin enthalten.

    Dann sollte es so wie von mir gezeigt gehen. Wenn dein Ordner irgendwie anders aussieht, musst du den zweiten Parameter anpassen.

    Hmmm ich hab nicht die Ahnung in PHP, es funktioniert nach wie vor nicht selbst wenn ich die originale "wp-ban.mo" lösche, bleibt es englisch.

    Ich hänge mal die php an, die ich geändert habe.

    Urgixgax

  • Ich greif mal folgenden code von oben auf:

    Code
    ### Create Text Domain For Translation
    add_action('init', 'ban_textdomain');
    function ban_textdomain() {
        if ([COLOR=Red][B]![/B][/COLOR]function_exists('[COLOR=Red][B]wp_print_styles[/B][/COLOR]')) {
            load_plugin_textdomain('wp-ban', 'wp-content/plugins/wp-ban');  //<-- alles kleiner WP 2.6
        } else {
            load_plugin_textdomain('wp-ban', false, 'wp-ban');  //<-- WP 2.6 Fall
        }
    }

    Da hat der Autor ? teilweise mitgedacht und an WP 2.6 anpassen wollen ([COLOR=Red]rot markiert[/COLOR]). Die Funktion wp_print_styles gibt es erst ab WP 2.6 somit wird mit diesem if entschieden, ob der Blog schon 2.6 oder niedriger ist. Also ein auskommentieren ist sicher nicht die beste Wahl, eine Korrektur ist angemessener.
    Da ich selbst noch keine Zeit hatte, die WP 2.6 zu installieren (liegt nur ausgepackt in einem deaktivierten, lokalen vhost rum), kann ich noch nicht viel zur Arbeitsweise der erweiterten load_plugin_textdomain Funktion sagen. Die schau ich mir aber später noch an.

    Ergänzungen:

    Die Sprachdatei für diese Plugin muß, um es nochmal eindeutig und exakt zu sagen, "wp-ban-de_DE.mo" für deutsch heißen und im wp-ban Ordner liegen.
    Desweiteren muß in der wp-config.php folgendes drinstehen:

    PHP
    define ('WPLANG', 'de_DE');

    Dann sollte die Übersetzung auch geladen werden, denn die WP 2.6 Funktion ist intern so definiert:

  • Hallo und danke, für die Mühe, aber es will einfach nicht klappen. Ich habe auch alles nochmals geprüft.

    In der wp-config.php steht folgendes:

    PHP
    define ('WPLANG', 'de_DE');

    [COLOR=#000000][/COLOR]

    in die wp-ban.php, habe ich nun eingetragen:

    PHP
    ### Create Text Domain For Translation
    add_action('init', 'ban_textdomain');
    function ban_textdomain() {
        if (!function_exists('wp_print_styles')) {
            load_plugin_textdomain('wp-ban', 'wp-content/plugins/wp-ban');  //<-- alles kleiner WP 2.6
        } else {
            load_plugin_textdomain('wp-ban', false, 'wp-ban');  //<-- WP 2.6 Fall
        }
    }

    ... aber es bleibt englisch!

    Die "wp-ban-de_DE.mo" ist im Ordner "wp-ban".

    Aber auch die "wp-ban-de_DE.po", wozu auch immer diese ist.

    Urgixgax

Jetzt mitmachen!

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