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


Load different JS based on users location

我试图使我的网站加载不同的基于用户语言的js文件。可能吗?

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

因此,我想重新创建test.js并将其命名为test. it.js test.js ecc.

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

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

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

谢谢,Gio

浏览器通常会发送一个Accept-Language HTTP报头,指示用户的首选语言。

在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/