我想在我的代码中使用翻译,它们来自PHP / MySql并转换为javascript数组:
var translate = <?= json_encode($Object->translate);?>;
翻译在Javascript(已测试)中可用。
现在,我想在我的Javascript代码中使用它们,例如Jquery UI对话框:
$("#logoff").click(function(){
var action = "logoff";
var btnLogoff = translate["dialog/buttonLogoff"]; // this gives the translation from the array
var btnCancel = translate["dialog/buttonCancel"]; // this gives the translation from the array
$("#dialog").dialog(
{
title: translate["dialog/titleLogoff"],
modal: true,
resizable: false,
buttons: {
btnLogoff : function() {
var loadUrl = "includes/_ajax/actions.ajax.php";
$.post(loadUrl,{action:action}, function(data) {
if(data)
location.reload();
});
$( this ).dialog( "close" );
},
btnCancel: function() {
$( this ).dialog( "close" );
}
}
}
);
$("#dialog").html("<span class='ui-icon ui-icon-alert' style='float: left; margin: 0 7px 20px 0;'></span>" + translate["dialog/textLogoff"]);
});
问题是数据属性btnLogoff没有显示翻译文本,而是显示自己(&#34; btnLogoff&#34;)。
在上一节中,翻译[&#34; dialog / textLogoff&#34;]的翻译就像它的意思一样。我显然做错了什么。我可以将var用作属性ID吗?怎么样?
答案 0 :(得分:1)
我认为你没有完全使用jQuery.dialog API。见http://api.jqueryui.com/dialog/#option-buttons
尝试使用按钮配置的“text”属性:
$("#dialog").dialog(
{
title: translate["dialog/titleLogoff"],
modal: true,
resizable: false,
buttons: [
{
text : btnLogoff,
click : function() {
var loadUrl = "includes/_ajax/actions.ajax.php";
$.post(loadUrl,{action:action}, function(data) {
if(data)
location.reload();
});
$( this ).dialog( "close" );
}
}
,
{
text : btnCancel,
click: function() {
$( this ).dialog( "close" );
}
}
]
}
);