it-swarm.com.de

die Übersetzung funktioniert nicht mit text_domain

Ich versuche mein benutzerdefiniertes Plugin zu übersetzen.

Ich kann mein Plugin übersetzen, wenn ich den fr_CA.po/.mo manuell in meinen wp-content\languages\plugins lege.

Aber ich möchte in der Lage sein, meine .po/.mo in meinem Plugins-Ordner in "myplugin/languages" abzulegen.

Nun, in der Hauptdatei habe ich Folgendes:

 * Text Domain: myplugin
 * Domain Path: /languages/

mein text

    add_action( 'init', 'myplugin_load_textdomain' );

function myplugin_load_textdomain() {
    load_plugin_textdomain( 'myplugin', false, dirname( plugin_basename( __FILE__ ) ) . '/languages/' );
}

mein .po / .mo befindet sich in diesem Ordner myplugin/languages/

Mein Wordpress ist in fr_CA (WordPress 4.7.2 – fr_CA)

Ich habe einen fr_FR.po /fr_CA.po (und ihren .mo).


Wie ich bereits sagte, mein Plugin ändert die Sprache, wenn ich meinen .po/.mo in den wp-content\languages\plugins lege und ich fr_FR(.mo/.po) in myplugin-fr_FR(.mo/.po) ändere.

aber ich möchte meinen .po/.mo in meinem plugins ordner behalten.

Weiß jemand was das Problem ist?

2

Aus dem Quellcode von load_plugin_textdomain wird ersichtlich, dass die Funktion zuerst in $domain . '-' . $locale . '.mo' nach myplugin-fr_FR.mo sucht (das ist also WP_LANG_DIR . '/plugins/' . $mofile).

Nur wenn die Datei nicht vorhanden ist, sucht sie nach dem angegebenen Pfad und wenn sie nicht im Haupt-Plugin-Verzeichnis vorhanden ist. Wenn Sie also die MO-Datei nicht im angegebenen Verzeichnis erhalten, ist sie entweder nicht vorhanden oder Sie geben den falschen Pfad an.

Ich kann nicht sehen, ob Sie Tippfehler gemacht haben, aber anstatt dirname und plugin_basename zu kombinieren, möchten Sie sich möglicherweise an plugin_dir_path halten, um das richtige Verzeichnis bereitzustellen.

1
cjbj