2012-12-17 38 views
1

我遇到了兩個問題。qTranslate在通過ajax從插件中調用時未正確檢測到

問題1:

  1. 我有翻譯mailchimp的鍋文件轉換成兩種語言。 .mo已經過測試,可以正常工作。
  2. 但是WP無法顯示其他語言的ajax對於mailchimp list subscribe form的mailchimp表單和/或窗口小部件的返回值。

我身邊這讓通過修改mailchimp.php類似以下內容:

$textdomain = 'mailchimp_i18n'; #line 57 to start 
    if (defined('WPLANG')) 
     $lang=WPLANG; 
    $locale = apply_filters('plugin_locale', $lang, $textdomain); 

我怎麼弄清楚? 代替這個$lang可變的,默認mailchimp.php已在wp-includesl10n.php定義get_locale()

當我在上面修改之前放置print_r($locale)。它顯示了在wp-config的WPLANG中設置的正確語言。但是,當提交mailchimp表單時,它只是默認的en_US!

* 它從哪裏獲得的EN_US,當我沒有把它設置* 我就覺得很奇怪,的l10n.phpget_locale()定義line 48-49包含:

if (empty($locale)) 
    $locale = 'en_US'; 

我想其中,獲取$ locale爲空,而在我的情況下,從窗體中調用。這是不可能的!但它發生在我測試的四個實例中。

我在mailchimp.php上的修改讓我知道了什麼? 我現在可以將其他語言(即阿拉伯語)字符串獲取到我的mailchimp表單響應中。但是從WPLANG中發現,我無法在網站的英文模式中切換到英文。

問題2: 要動態切換語言。我使用qtrans_getLanguage()代替了mailchimp.php的代碼部分中的get_locale()。因此,它變成:

$locale = apply_filters('plugin_locale', qtrans_getLanguage(), $textdomain); 

如果我在這一行後面print_r($ locale)。它顯示當前的語言。但是,當表單提交時沒有。表單的迴應總是顯示爲(en)!.

現在,問題1是不太可能發生,是不尋常的。但對於問題2我絕對認爲有一個聰明的工作。爲什麼在從表單的Ajax中調用qTranslate時報錯?

此外,我不想修改核心插件文件。目前,我不得不修改mailchimp.js手動匹配和替換常見的字符串(我恨它!)。

+0

發現了一些暗示[這裏](http://stackoverflow.com/questions/7800630/ajax-qtranslate),但尚未肯定,如果我只是需要 \t \t \t \t' 'ajax_url'=> trailingslashit(HOME_URL ()。'/'。qtrans_getLanguage()),'在'mailchimp.php'的第96行' – Lenin

回答

1

按照thisthis

解決它但作爲mailchip.js有這個「ajax_url」我搜索在從生成該網址的mailchimp插件。其在mailchimp.php

'ajax_url' => trailingslashit(home_url().'/'. qtrans_getLanguage()), 

在行號96生成的I剛添加的'/'. qtrans_getLanguage()一部分。

+0

通過上面的更改,我只刪除了對'mailchimp.php'所做的其他更改 – Lenin

相關問題