Вам нужно будет поместить сообщения в DOM
с самого начала, но без отображения их. Поместите эти тексты в span
теги каждый с уникальным id
и атрибутом th:text
- вы можете добавить их в конце документа:
<span id="alertUpdateTable" th:text="#{listTable.updateTable}"
style="display:none">Update the Table.</span>
Это будет гарантировать, что ваш модуль интернационализации будет делать свою магию и на этом элементе , и текст будет переведен, даже если он не отображается.
Затем в тот момент, который вы хотите использовать это предупреждение, получить этот скрытый текст и ввести его там, где вам это нужно:
$('#TableUpdate-notification').html(
'<div class="alert"><p>' + $('#alertUpdateTable').html() + '</p></div>');
Вы просили другой вариант этого, где вы в данный момент имеем:
$successSpan.html(tableItemCount + " item was deleted from the table.", 2000);
Вы бы затем добавить содержимое снова не-дисплее span
с заполнителем для подсчета:
<span id="alertTableItemDeleted" th:text="#{listTable.itemDeleted}"
style="display:none">{1} item(s) were deleted from the table.</span>
Вы должны убедиться, что в ваших переводах также используется заполнитель. Затем используйте его следующим образом, заменив заполнитель во время выполнения:
$successSpan.html($('#alertTableItemDeleted').html().replace('{1}', tableItemCount));
Вы могли бы сделать функцию, чтобы иметь дело с заменой таких заполнителей:
function getMsg(id) {
var txt = $('#' + id).html();
for (var i = 1; i < arguments.length; i++) {
txt = txt.replace('{' + i + '}', arguments[i]);
}
return txt;
}
И тогда два примера будет в письменной форме:
$('#TableUpdate-notification').html(
'<div class="alert"><p>' + getMsg('alertUpdateTable') + '</p></div>');
$successSpan.html(getMsg('alertTableItemDeleted', tableItemCount));
Непонятно, что вы просите. –
В нашем приложении мы генерируем сообщения, такие как успех, и все динамически предупреждаем, когда все сообщения записываются в файл свойств. Но некоторые сообщения поступают из JavaScript. Я не нашел способ жестко кодировать сообщения из JavaScript? – dummy