根据用户位置加载不同的JS

时间:2013-06-17 18:29:12

标签: php javascript jquery if-statement

我试图让我的网站根据用户语言加载不同的js文件。可能的?

我有这个javascript应用程序:test.js< - 在这里我可以定义语言(默认eng)

所以,我想重新创建test.js并将其命名为test-it.js test-es.js ecc。

在我的索引中,脚本像往常一样加载:

<script type="text/javascript" src="http://mysite.com/test.js"></script>

是否可以设置检测浏览器语言的if / else条件并加载正确的js应用程序?

谢谢,Gio

1 个答案:

答案 0 :(得分:0)

浏览器通常会发送一个Accept-Language HTTP header来表示用户的首选语言。

在php中,您可以阅读此标题并使用它来返回相应的文件。

test.php的

<?php
$locale = locale_accept_from_http($_SERVER['HTTP_ACCEPT_LANGUAGE']);
list($language, $country) = explode('_', $locale);
include 'test-'.$language'.js';
?>

然而,这不是最好的方法,因为您可能希望让用户能够覆盖语言而不使用浏览器的语言。此外,浏览器可能根本不发送语言,或者可能指定您不支持的语言。此外,使用这样的服务器端选择可能会损害您缓存文件的能力。此外,如果JavaScript文件除了语言之外还包含其中的代码,则您不希望在多个文件中复制代码。

我建议使用一个库,如:http://i18next.com/