多语言AJAX应用程序


Multilingual AJAX application

我正在使用大量javascript和AJAX构建一个web应用程序。此应用程序必须是多语言的。

在服务器端,我有一个用PHP编码的小模板引擎,用于处理翻译文件。但在客户端,我有时会显示文本,并且需要按照相同的规则进行翻译。我不想每次需要显示消息时都发出http请求,那么最好的方法是什么呢?

换句话说,如何建立一个统一的翻译系统,同时在服务器端和客户端工作?

您可以设置一个服务器端脚本,该脚本将根据用户偏好提供包含翻译变量的动态javascript。例如:

<script type="text/javascript" src="/translations.php?language=fr"></script>

这个脚本可能包含一个带有翻译的全局变量:

var values = { hello: 'Bonjour', goodbye: 'Au revoir' };
...

该脚本将由客户端浏览器缓存,并在您的脚本中使用:

alert(values.hello);

只要确保您设置了正确的HTTP响应缓存头,这样客户端就只需要获取这些值一次,可能是在选择语言时。显然,服务器端脚本也可以使用Accept-Language HTTP请求头来确定客户端首选项,而不是使用查询字符串参数。