#REM Parameters from outside: #DialogTitle ... translation for header title of the confirmationdialog #DialogMessage ... translation for messsge inside the confirmationdialog #DialogCommitButton ... translation for title of CTA button #onBeforeSubmit ... callback executed before sumitting the form Why do we need to format the translation keyword twice with [js]? It's not 100% confirmed, but methinks that the formatter [js] is actually ignored inside the translation tag, when in 'JS' context (i.e. inside of a script/json snippet), because whatever formatter you put, [0], [html], etc., the resulting value is always the same, with xml-escaped characters, instead of \u escaped characters, which is what [js] should actually do. Amazing also that [js] then replaces xml escaped characters with their \u equivalent! Example: #LOCAL("DialogTitle", "_LanguageTagFor_DialogTitle_[js]") #SET("DialogTitle", #FORMAT(#DialogTitle, "js")) #LOCAL("DialogMessage", "_LanguageTagFor_DialogMessage_[js]") #SET("DialogMessage", #FORMAT(#DialogMessage, "js")) #LOCAL("DialogCommitButton", "_LanguageTagFor_DialogCommitButton_[js]") #SET("DialogCommitButton", #FORMAT(#DialogCommitButton, "js")) #LOCAL("onBeforeSubmit", "function(data) {var input = $(''); input.attr({'type': 'hidden', 'name': 'ACCEPT'}); input.val(1); data.form.append(input);}") { "Group": "Delete", "Name": "{Unassign[js]}", "Value": "#URLAction", #INCLUDE("SNIPPET-BatchAction-ConfirmationDialog") } #ENDLOCAL #ENDLOCAL #ENDLOCAL #ENDLOCAL #ENDREM "#BLOCK("NewLineReplace","") function() { /* define variable on *batch-action-level* (scope) => this = executing batch action input */ var batchAction = ep(this), $form = $(this.form); require(['jquery', 'ep', 'de_epages/presentation/ui/confirmationdialog'], function($, ep, confirmationdialog) { /* define variable on *require-level* (scope) => this = require? */ var request; batchAction.closest('form').uiForm({showSaveWarn:false}); request = { 'dialogClass' : '.ep-product-portal-confirmationDialog', 'submitForm' : $form, 'buttonActivatedSelector' : batchAction.parent(), 'text' : { 'DialogTitle': '#DialogTitle', 'DialogMessage': '#DialogMessage', 'DialogCommitButton': '#DialogCommitButton' }, 'batchAction': batchAction #IF(#DEFINED(#onBeforeSubmit)), 'onBeforeSubmit': #onBeforeSubmit[0]#ENDIF }; confirmationdialog.open(request); }); }#ENDBLOCK"