2011-05-24 162 views
0

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

在服务器端,我有一个用PHP编写的模板引擎,它处理翻译文件。但在客户端,我有时会显示文本,我需要按照相同的规则进行翻译。我不想在每次需要显示消息时发出http请求,那么执行此操作的最佳方式是什么?

换句话说,如何建立一个兼顾服务器和客户端的统一翻译系统?

回答

0

您可以设置一个服务器端脚本,它将根据用户的喜好提供包含翻译变量的动态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请求头来确定客户端首选项而不是查询字符串参数。

+0

而对于实际翻译的字符串:http://us.php.net/gettext – 2011-05-24 18:26:56