wordpress的Javascript字符串翻译

时间:2017-09-18 14:21:31

标签: javascript wordpress wpml

我正在使用不支持WPML的广告系列监控插件,我需要在javascript文件中翻译错误消息。这是app.js文件中的代码块

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");
        }
    },

我尝试使用此示例进行翻译,以使其在sting翻译中可用。

// 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' );

但是我不明白我应该填写“某些句柄”以及该对象名应该是什么?或者有没有简单的方法来翻译它?

任何人都可以解释我如何翻译这些错误文本?

提前谢谢。

1 个答案:

答案 0 :(得分:0)

&#39; some_handle&#39; 只是您通过WordPress注册脚本时使用的名称,可以是任何内容,只需确保句柄遵循无空格等规则。

&#39; object_name&#39; 是将被声明为翻译对象的JavaScript变量名称。

e.g。

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

如果您的对象名称是&#39; translation_obj&#39;,您就可以在客户端JavaScript中检索translation_obj.a

翻译由WordPress及其选择的多语言插件完成。阅读更多国际化:https://codex.wordpress.org/I18n_for_WordPress_Developers