2017-08-05 116 views
1

我正在做一個自定義的WordPress插件,但我無法獲得它的多語言準備。Wordpress插件翻譯 - load_plugin_textdomain

它確實加載了主要語言的.mo文件,但是在切換語言時(使用WPML),它總是顯示主要語言(本例中爲德語)的翻譯。所以當我使用英語時,它仍然顯示德語翻譯。

這裏是我的代碼:

在頭

/* 
Plugin Name: MM Jobs 
Plugin URI: http://example.com/ 
Description: Custom Jobs Plugin to create new Jobs 
Version: 1.3.84 
Author: Jekey 
Author URI: http://example.com/ 
Text Domain: mm-jobs 
Domain Path: /languages 
*/ 

則:

function mm_jobs_plugins_loaded() { 
     load_plugin_textdomain('mm-jobs', false, dirname(plugin_basename(__FILE__)) . '/languages/'); 
    } 
    add_action('plugins_loaded', 'mm_jobs_plugins_loaded', 0); 

的.mo文件是正確的,因爲它已經加載的德語翻譯。 命名:mm-jobs-en_US.mo或mm-jobs-de_DE.mo under/plugins/mm-jobs/languages/

你有什麼想法是什麼原因造成的問題?

回答

1

如果有人遇到同樣的問題。我有

get_plugin_data(__FILE__); 

在我的代碼。這導致運行一個wp_core函數加載textdomain,所以我的en_US.mo被de_DE.mo覆蓋。

我不知道爲什麼get_plugin_data()帶錯了lang文件。它似乎選擇了使用該功能的不同插件的正確選擇。