如何在Java脚本中为我的插件设置翻译?

时间:2017-09-20 作者:J.BizMai

我的插件中有:

表单。js:js脚本对表单字段进行自定义验证。js\\u lang.php:基于此stackoverflow post

  • my-plugin-domain-fr\\u fr.po中form.js, 我使用js\\u lang.php中的var(msg\\u must\\u match)

    function inputsMatch( inputTypes, idInputReferring, idInputRepeat ){
            var inputReferring = document.getElementById( idInputReferring );
            var inputRepeat = document.getElementById( idInputRepeat );
    
            var checkPasswordValidity = function() {
                if (inputReferring.value != inputRepeat.value) {
                    inputRepeat.setCustomValidity( msg_must_match /*<-- here*/ );
                } else {
                    inputRepeat.setCustomValidity(\'\');
                }
            };
            inputReferring.addEventListener(\'change\', checkPasswordValidity, false);
            inputRepeat.addEventListener(\'change\', checkPasswordValidity, false);
    }
    
    在我的js_lang.php 我试图管理翻译加载my-plugin-domain-fr\\u fr.po,但没有成功
    $locale = "fr_FR";
    
    putenv("LANG=".$locale); 
    setlocale(\'LC_ALL\', $locale); 
    bindtextdomain("my-plugin-domain", "./locale/");  
    textdomain("my-plugin-domain");
    $str = \'It is must match with the previous input\';
    ?>
    msg_must_match = "<?php echo gettext( $str ); ?>"
    
    我无法正确加载。采购订单文件。有人能帮我吗?有没有更简单的wordpress方法可以做到这一点?

  • 1 个回复
    最合适的回答,由SO网友:Jacob Peattie 整理而成

    WordPress的方法是wp_localize_script() 作用

    将脚本排入队列时,还要添加对的调用wp_localize_script():

    wp_register_script( \'my-script\', \'path/to/script.js\' );
    wp_localize_script( \'my-script\', \'myScript\', array(
        \'msg_must_match\' => __( \'Message must match\', \'my-plugin-domain\' ),
    ) );
    
    这将创建一个名为myScript 它将包含在第三个参数中作为数组传递的键和值。因此,您可以使用WordPress翻译功能传入字符串,这些字符串将像插件中的任何其他字符串一样进行翻译。

    然后在脚本中,可以将这些值用于字符串:

    inputRepeat.setCustomValidity( myScript.msg_must_match );
    

    结束