我以前從這裏的說明: http://www.playframework.org/documentation/1.2.1/i18n的Java Playframework國際不起作用
和創建的文件爲不同的語言。
我打電話play.i18n.Lang.change方法來改變語言文件, 它仍然採取從字幕英文文件(「信息」沒有後綴),
任何想法,爲什麼?
我以前從這裏的說明: http://www.playframework.org/documentation/1.2.1/i18n的Java Playframework國際不起作用
和創建的文件爲不同的語言。
我打電話play.i18n.Lang.change方法來改變語言文件, 它仍然採取從字幕英文文件(「信息」沒有後綴),
任何想法,爲什麼?
這是很難從你的描述知道的問題可能是什麼,所以我提出了,你應該怎麼做一個多語種的應用程序。
有一些你必須遵循獲得國際化的工作步驟。首先,您必須更改您的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編碼的。如果不是,它會導致問題。
在我的特定情況下,我不得不
play.http.session.domain
設置爲localhost
,而測試的其他東西。
我沒有看到PLAY_LANG cookie, 這可能是問題的一部分... 這可能是什麼原因? – bArmageddon 2011-06-11 09:07:39
不確定。您的瀏覽器是否禁用了Cookie?我剛剛運行了一個快速測試,並使用Firebug(在Chrome中),我可以在文檔元素下看到cookie,並在其中看到PLAY_LANG = fr。你是以任何方式操縱曲奇嗎? – Codemwnci 2011-06-11 09:13:31
我查過了,沒有Cookie。 我找到了原因: – bArmageddon 2011-06-11 09:44:06