2017-09-18 127 views
0

我正在使用不是WPML就緒的活動監視器插件,我需要在JavaScript文件中翻譯錯誤消息。這是app.js文件中的代碼塊用於wordpress的Javascript字符串翻譯

function cmApp_validateForm() 
{ 

    var signupContainerElem=jQuery("#cmApp_signupContainer"); 

    var errorElem = jQuery("#cmApp_emailError"); 
    var errorElemDOB = jQuery("#cmApp_dobError"); 
    var formElem = signupContainerElem.find("form"); 
    var processingMsgElem = signupContainerElem.find("div.cmApp_processingMsg"); 
    var successMsgElem = signupContainerElem.find("div.cmApp_successMsg"); 


    var errorMsgAr=[]; 
    var errorFieldSelectorAr=[]; 

    var errorMsg=""; 

    formElem.hide(); 
    errorElem.html("").hide(); 
    errorElemDOB.html("").hide(); 
    successMsgElem.hide(); 

    cmApp_showProcessing(); 

    signupContainerElem.find("input,select").css("outline","none"); 

    // validate the email field. make sure it is not empty and that it is valid. if invalid, add to the error array and outline the field in red 
    var email = jQuery("#cmApp_signupEmail").val(); 

    if (email.length < 1) { 
     errorMsg = "Geef een geldig e-mailadres in"; 
     errorMsgAr[errorMsgAr.length]="Please provide correct email"; 
     jQuery("#cmApp_signupEmail").focus().css("border" , "2px solid #D95350"); 
    } 
    else { 
     if (!cmApp_validateEmail(email)) { 
      errorMsgAr[errorMsgAr.length]="This is an invalid email"; 
      errorFieldSelectorAr[errorFieldSelectorAr.length]="#cmApp_signupEmail"; 
      jQuery("#cmApp_signupEmail").focus().css("border","2px solid #D95350"); 
     } 
    }, 

我試圖翻譯使用此示例使它在翻譯中可用。

// Register the script 
wp_register_script('some_handle', 'path/to/myscript.js'); 

// Localize the script with new data 
$translation_array = array(
    'some_string' => __('Some string to translate', 'plugin-domain'), 
    'a_value' => '10' 
); 
wp_localize_script('some_handle', 'object_name', $translation_array); 

// Enqueued script with localized data. 
wp_enqueue_script('some_handle'); 

但我不明白,我應該怎麼填寫「一些手柄」應該是什麼的對象名?或者有什麼簡單的方法來翻譯這個?

任何人都可以解釋如何翻譯這些錯誤文本?

預先感謝您。

回答

0

「some_handle」只是用於註冊通過WordPress的腳本的名稱,可以不管,只要確保手柄下面好像沒有空間規則等

「OBJECT_NAME」是將被聲明爲翻譯對象的JavaScript變量名稱。

例如

$translate_array['a'] = __('string_a'); 

如果你的對象的名字是「translation_obj」,你將能夠檢索您的客戶端JavaScript translation_obj.a

翻譯是由WordPress及其選擇的多語種插件完成的。詳細瞭解國際化:https://codex.wordpress.org/I18n_for_WordPress_Developers

+0

我試過你說的,它顯示在字符串翻譯但沒有翻譯文本:(有沒有可以根據語言翻譯的任何外部jQuery或JavaScript功能? – Zaheen

+0

不,翻譯不是自動完成的(我們希望) 。你需要安裝多語言插件,你需要自己做字符串翻譯。WPML https://wpml.org/就是這樣一個多語言的插件。但老實說,我強烈建議你只寫自己的自定義代碼如果翻譯很少,可以處理翻譯,也許只是從一個語言字符串數組文件中讀取數據。WPML非常耗費資源,在我看來很臃腫。 – TurtleTread