jackeryを使用してKnackというプラットフォームで作成された1つのアプリケーションのUIの言語を変更するjsスクリプトを作成しようとしています。問題は、UIのどこかをクリックすると言語が元の言語に戻ってしまうので、Knackが完全に理解できないイベントハンドラを使用しているか、JSスキルが短いためです。これはループに関連しているのだろうかと思っていますか?つまり、ページ内のすべてのイベントに対してループを強制的に再実行するにはどうすればよいですか。Knack上に構築されたアプリケーション用のJqueryでループを作成
ありがとうございます!ここで
は私のスクリプトです:
// Translation script ----> Start
$(document).on('knack-view-render.any', function() {
// var time = $(".view_22 kn-rich_text kn-view");
// add time to logo section $("#knack-logo").append($("time"));
$(".field_19 .table-fixed-label span").html(" Tender"); //english default
$(".field_45 .table-fixed-label span").html(" Language"); //english default
$(".field_19 .kn-label span").html("Tender"); //english default
$(".field_45 .kn-label span").html("Language"); //english default
$(".table-keyword-search a").html("Search"); //english default
$(".kn-form-reload").html("Reload Form"); //english default
$(".kn-message.success").html("<div>Form successfully submitted.</div><br />"); //english default
$(".kn-message.error p").html("<p>Name is required!</p><br />");
$(".table-keyword-search input").attr("placeholder", "Search by Keyword"); //english default
$(".kn-submit input[type=submit]").attr("value", "Submit"); //english default
$('.kn-add-filter').text('add filter'); //english default
});
$(document).on('knack-view-render.any', function(event, page, data, view, record, scene) {
$("#view_26 select[id=chlang]").change(function() { //html document in view_26 with the <select> options
var selectedValue = $(this).val();
if (selectedValue === 'en') {
$(".field_19 .table-fixed-label span").html(" Tender"); //english default
$(".field_45 .table-fixed-label span").html(" Language"); //english default
$(".field_19 .kn-label span").html("Tender"); //english default
$(".field_45 .kn-label span").html("Language"); //english default
$(".table-keyword-search a").html("Search"); //english default
$(".kn-form-reload").html("Reload Form"); //english default
$(".kn-message.success").html("<div>Form successfully submitted.</div><br />"); //english default
$(".kn-message.error strong").html("<div>Name is required!</div><br />");
$(".table-keyword-search input").attr("placeholder", "Search by Keyword"); //english default
$(".kn-submit input[type=submit]").attr("value", "Submit"); //english default
$('.kn-add-filter').text('add filter'); //english default
}
else if (selectedValue === 'fr'){
$(".field_19 .table-fixed-label span").html(" Appel d\' offre"); //replace field number and field name in desired language
$(".field_45 .table-fixed-label span").html(" Langue"); //replace field number and field name in desired language
$(".field_19 .kn-label span").html("Appel d' offre"); //replace field number and field name in desired language
$(".field_45 .kn-label span").html("Idiome"); //replace field number and field name in desired language
$(".table-keyword-search a").html("Rechercher"); //replace with "Search" name in desired language
$(".kn-form-reload").html("Recharger Formulaire"); //replace with "Reload Form" name in desired language
$(".kn-message.success").html("<div>Soumis avec Succès.</div><br />"); //replace with "Form successfully submitted."
$(".table-keyword-search input").attr("placeholder", "recherche par mots-clés"); //replace with "Search by Keyword" name in desired language
$(".kn-submit input[type=submit]").attr("value", "Enregistrer"); //replace with "Submit" name in desired language
$('.kn-add-filter').text('ajouter filtre'); //replace with "add filter" name in desired language
}
});
});
// Translation script <---- End
だから、イベントを発生させるjqueryコードが必要ですか? – Jorius
はい、それはそれを置くのに良い方法です! –