【发布时间】:2017-03-10 08:25:03
【问题描述】:
我正在开发基于 php 的多语言网站。
为了支持多语言,我使用如下本地化文件。
[localize.en-US.php]
$lang_code = "en-US";
$is_rtl = false;
.
.
.
define("WORD_EMAIL", "e-mail");
define("WORD_NAME", "name");
.
.
.
以下两种方式使用的定义词。
[HTML]
<?=WORD_EMAIL?> : <input type="text" name="email"/>
<?=WORD_NAME?> : <input type="text" name="name"/>
[Javascript]
if(frm.email.value==="") {
alert("<?=WORD_EMAIL?> required.");
return false;
}
问题发生在我研究希伯来语时。
希伯来语翻译中的“电子邮件”一词有双引号。
我试图转义双引号。
要转义双引号,
PHP 需要一个反斜杠,而 javascript 需要一个又一个反斜杠。
所以我在双引号前加了 3 个反斜杠。
它在 javascript 警报上显示属性。但在 HTML 反斜杠(用于 javascript)上出现..
是的,我知道使用单引号可以简单地解决这个问题。
但在本地化文件中出现异常(某些法语单词使用单引号)。
有人可以帮忙吗?欢迎提供任何线索。
【问题讨论】:
-
shabbat shalom goyim 也许这会对你有所帮助
php.net/manual/en/function.htmlspecialchars.php -
如果你把所有的翻译放在一个数组中会容易很多。然后您可以使用
json_encode()将该数组正确发送到javascript。您可以使用alert(<?= json_encode(WORD_EMAIL); ?> + " required.");进行尝试。当然,当输出到 html 时,您需要htmlspecialchars()。
标签: javascript php escaping hebrew