2011-06-11 82 views

回答

7

這是很難從你的描述知道的問題可能是什麼,所以我提出了,你應該怎麼做一個多語種的應用程序。

有一些你必須遵循獲得國際化的工作步驟。首先,您必須更改您的application.conf文件以聲明您支持的語言。

所以,如果你是支持英語和法語,你會做

application.langs=en,fr 

然後,必須爲您的名爲messages.fr法語翻譯的語言文件。英文將保留在標準messages文件中。在這個新文件中,爲密鑰和消息添加您的名稱值對。

的方式播放處理的消息,是首先看在區域設置特定消息文件中的第一(所以對於英語這將是messages.en,它不存在,以及用於法國這將是messages.fr)。如果在特定於語言環境的消息文件中找不到消息,它將查看全局消息文件。所以你的全球messages文件充當了所有。

然後,在你的代碼,設置使用

Lang.change("fr"); // change language to French 

請記住,這將保存在PLAY_LANG cookie中的特定用戶的Cookie,所以檢查這個cookie正在爲您的特定用戶的語言,爲用戶創建。

最後注意,請確保您的文件是UTF8編碼的。如果不是,它會導致問題。

+1

我沒有看到PLAY_LANG cookie, 這可能是問題的一部分... 這可能是什麼原因? – bArmageddon 2011-06-11 09:07:39

+0

不確定。您的瀏覽器是否禁用了Cookie?我剛剛運行了一個快速測試,並使用Firebug(在Chrome中),我可以在文檔元素下看到cookie,並在其中看到PLAY_LANG = fr。你是以任何方式操縱曲奇嗎? – Codemwnci 2011-06-11 09:13:31

+0

我查過了,沒有Cookie。 我找到了原因: – bArmageddon 2011-06-11 09:44:06

0

在我的特定情況下,我不得不

play.http.session.domain 

設置爲localhost,而測試的其他東西。