我正在使用" pricer主题"在wordpress中我需要将英文文本替换为日文文本。我替换了文本,发生了这个问题。
这是原始代码
<div class="box_content">
<script>
jQuery(document).ready(function() {
jQuery('.dd-submit-rating').click(function() {
var id = jQuery(this).attr('rel');
var uprating = jQuery("#rating_me-" + id + " :selected").val();
var reason = jQuery("#reason-" + id).val();
if(reason.length < 10) { alert("<?php _e('Please input a longer description for your rating','PricerrTheme'); ?>"); return false; }
jQuery.ajax({
type: "POST",
url: "<?php echo get_bloginfo('siteurl'); ?>/",
data: "rate_me=1&ids="+id+"&uprating="+uprating+"&reason="+reason,
success: function(msg){
jQuery("#post-" + id).hide('slow');
}
});
return false;
});
//-------------------------
});
</script>
原版英文弹出消息
这里是替换的日语文本
<script>
jQuery(document).ready(function() {
jQuery('.dd-submit-rating').click(function() {
var id = jQuery(this).attr('rel');
var uprating = jQuery("#rating_me-" + id + " :selected").val();
var reason = jQuery("#reason-" + id).val();
if(reason.length < 10) { alert("<?php _e('もう少し文字を多めに(詳細)に評価してください。','PricerrTheme'); ?>"); return false; }
jQuery.ajax({
type: "POST",
url: "<?php echo get_bloginfo('siteurl'); ?>/",
data: "rate_me=1&ids="+id+"&uprating="+uprating+"&reason="+reason,
success: function(msg){
jQuery("#post-" + id).hide('slow');
}
});
return false;
});
//-------------------------
});
</script>
当我替换日文文本时,它会在浏览器中显示此弹出框消息。 请帮忙。
答案 0 :(得分:0)
以下是将Unicode NCR转换为JavaScript转义形式的解决方案:
var strNCR = 'もう少し文字を多めに(詳細)に評価してください。'; // Original Text: もう少し文字を多めに(詳細)に評価してください。
alert(convertHexNCR2Char(strNCR));
// or, in your case:
alert(convertHexNCR2Char("<?php _e('もう少し文字を多めに(詳細)に評価してください。','PricerrTheme'); ?>"));
function convertHexNCR2Char(str) {
// converts a string containing &#x...; escapes to a string of characters
// str: string, the input
// convert up to 6 digit escapes to characters
str = str.replace(/&#x([A-Fa-f0-9]{1,6});/g,
function (matchstr, parens) {
return hex2char(parens);
});
return str;
}
// =====
// Helper functions
function hex2char(hex) {
// converts a single hex number to a character
// note that no checking is performed to ensure that this is just a hex number, eg. no spaces etc
// hex: string, the hex codepoint to be converted
var result = '';
var n = parseInt(hex, 16);
if (n <= 0xFFFF) {
result += String.fromCharCode(n);
} else if (n <= 0x10FFFF) {
n -= 0x10000
result += String.fromCharCode(0xD800 | (n >> 10)) + String.fromCharCode(0xDC00 | (n & 0x3FF));
} else {
result += 'hex2Char error: Code point out of range: ' + dec2hex(n);
}
return result;
}
function dec2hex(textString) {
return (textString + 0).toString(16).toUpperCase();
}
工作JSFiddle
代码段改编自Unicode code converter,这是一种免费工具,可以转换为不同的Unicode格式。