你能告诉我为什么这不起作用(没有任何反应):
if (confirm("<?=_("Hello!\r\nContinue?")?>")) {
alert("Welcome!");
}
当这工作正常时:
if (confirm("<?=_("Hello! Continue?")?>")) {
alert("Welcome!");
}
这也是:
if (confirm("Hello!\r\nContinue?")) {
alert("Welcome!");
}
在我的服务器上启用了GetText,以获取信息。
谢谢你们!
答案 0 :(得分:2)
JavaScript的字符串不允许简单的换行符 工作示例:
if (confirm("<?=_("Hello!\\r\\nContinue?")?>")) { // Line breaks escaped
alert("Welcome!");
}
或者:
if (confirm("<?=_('Hello!\r\nContinue?')?>")) { // No interpolation
alert("Welcome!");
}
免责声明:如果您的翻译字符串包含换行符,则无效。
答案 1 :(得分:1)
由于您尝试将字符串字符串回显到javascript,请使用字符串文字:
if (confirm("<?=_('Hello!\r\nContinue?')?>")) {
alert("Welcome!");
}
注意PHP字符串周围的撇号。这将回显'\ r \ n'AS'\ r \ n'而不是chr(13)chr(10)。
我不完全确定这在GetText .PO文件中是如何工作的,但关于索引原始'Hello!\ r \ nContinue?' - 我猜它会在那里Hello!\r\nContinue?
,一个可用于翻译的字符串,我不确定如果你有另一个GetText索引会发生什么:
Hello!
Continue?
(单词之间的实际CRLF)
基本上,我不确定GetText如何处理字符串,不管是文字还是文字。