我有一个包含字符串的数据库以及该字符串所属的语言。一个字符串有一个唯一的名称,我用它来识别它,然后是每种语言的翻译。
使用PHP,我从数据库中获取此信息并将其存储在关联数组中,如:
$languages['strings']['lang']['unique_string_name'] = $translation;
现在,因为我想要翻译我的Javascript代码,我需要将其传递给。我试过用JSON做的,但有些$ translation有引号和双引号,这是一个很难逃脱并让它完全正确 - 因为转义只是逃避整个JSON字符串,而不仅仅是翻译。
所以,我所做的是循环整个数组并再次在Javascript关联数组中回显$ translation,但这次使用addslashes - 只有翻译。
但是,如果我查看源代码,我会看到600行Javascripts条目,每个翻译一个(当然,这没有什么奇怪的,只是UGLY)。
我想知道是否有更清晰的方式将此转换数组传递给我的Javascript代码,而无需循环PHP数组并将其回显给JS变量。
感谢您的时间和答案!
答案 0 :(得分:1)
你真正需要的是:
<script type="text/javascript">
var languages = <?php echo json_encode($languages); ?>;
</script>
你最终会得到JS中PHP数组的完全重复,所以
echo $languages['strings']['lang']['unique_string_name']; // PHP
alert(languages.strings.lang.unique_string_name); // JS
都会带来相同的翻译。