【发布时间】:2013-09-26 14:35:34
【问题描述】:
我有一个包含字符串的数据库以及该字符串所属的语言。一个字符串有一个唯一的名称,我用它来识别它,然后是每种语言的翻译。
使用 PHP,我从数据库中获取这些信息并将其存储在一个关联数组中,例如:
$languages['strings']['lang']['unique_string_name'] = $translation;
现在,由于我也希望翻译我的 Javascript 代码,因此我需要将其传递给。我已经尝试在 JSON 中执行此操作,但有些 $translation 有引号和双引号,要转义并使其全部正确是地狱般的 - 因为转义只会转义整个 JSON 字符串,而不仅仅是翻译。
所以,我所做的是循环整个数组并再次在 Javascript 关联数组中回显 $translation,但这次使用了斜杠 - 只有翻译。
但是,如果我查看源代码,我会看到 600 行 Javascripts 条目,每个翻译一个(当然,这没有什么奇怪的,只是很丑)。
我想知道是否有一种更简洁的方法可以将此转换数组传递给我的 Javascript 代码,而无需循环 PHP 数组并将其回显到 JS 变量。
感谢您的时间和回答!
【问题讨论】:
-
你是怎么做 JSON 的?您是否为此使用了实际的 PHP 和 Javascript 函数?
$str = json_encode($languages);用于 PHP 和var languages = JSON.parse(str);用于 Javascript 应该可以工作。 -
var languages = <?php echo json_encode($languages); ?>;- 完成。 -
php.net/json_encode 是你的朋友。
标签: javascript php json escaping translation