2011-05-24 122 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