0

コードで翻訳を使用したいのですが、それらはPHP / MySQLからのものであり、javascript配列に変換されます。

var translate = <?= json_encode($Object->translate);?>;

翻訳はJavascriptで利用できます(テスト済み)。

ここで、Javascriptコード、たとえばJqueryUIダイアログでそれらを使用したいと思います。

$("#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が翻訳されたテキストを表示せず、代わりにそれ自体を表示することです( "btnLogoff")。

最後のセクションでは、translate ["dialog/textLogoff"]が意図したとおりに翻訳されています。私は明らかに何か間違ったことをしている。varをプロパティIDとして使用できますか?どのように?

4

1 に答える 1

1

jQuery.dialogAPIを完全に使用していないと思います。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" );
                }
            }
        ]
    }
);
于 2013-01-13T11:26:22.867 に答える