2009-11-05 50 views
1

這現在讓我很生氣。 我有一個aspApp頁面上的javaApplet。 在這個javaApplet我必須檢測用戶首選語言 火狐 - 工具 - 選項 - 內容的語言,Choose.I在那裏有3種語言和firstOne 是西班牙/西班牙[ES-ES]通過執行以下操作System.getProperty(「user.language」)總是返回「en」不是用戶當前語言設置

String locale = System.getProperty(「user.language」)+「 - 」+ System.getProperty(「user.region」); 我希望語言環境是「ES-ES」

,但我總是得到「EN-空」和user.language始終是「恩」

你如何在Java語言userPreferred?

正確的結果應該是 「ES-ES」

任何建議#? 非常感謝

回答

2

你需要傳遞的語言環境作爲參數傳遞給小程序...

<APPLET ...> 
<PARAM name="Locale" value="es-ES"> 
</APPLET> 

這當然,可以通過基於Accept-Language頭您的服務器端的ASP.NET代碼呈現。

然後,使用applet的getParameter(String name)方法檢索在通過現場

+1

這看起來像是togo的方式。我會去感謝 – 2009-11-05 16:23:21

1

不知道發生了什麼,但爲什麼不使用現有的java.util.Locale API?

Locale locale = Locale.getDefault(); 

甚至更​​好,使用Applet's繼承getLocale()方法:

Locale locale = getLocale(); 

[編輯]哦,這是明確的。您希望獲得客戶端應用程序的首選語言,而不是操作系統平臺的首選語言。在這種情況下,你需要讓JS在將它傳遞給小程序,理論上:)通過向System.getProperty調用(返回

document.appletname.language = window.navigator.userLanguage; 
+0

不,我想這是他的問題是:他需要在瀏覽器的語言環境,而不是Java的。 – 2009-11-05 14:59:46

+0

你說得對。擴展答案。 – BalusC 2009-11-05 15:04:37

+0

是的,我需要瀏覽器的語言環境不是java的。 這是可能的Java?在.net中你做HttpContext.Current.Request.UserLanguages [0];或HttpContext.Current.Request.ServerVariables(「HTTP_ACCEPT_LANGUAGE」) 我不能相信我不能在Java.I是一個總新手在Java中, Locale.getDefault();不會返回我所期望的 任何建議 – 2009-11-05 15:05:14

1

值沒有任何關係與火狐者優先langage。如果你看一下計算機的語言設置,我相信你會發現ennull不是來自無處。 現在如何從你的applet中獲取瀏覽器首選的語言是另一個問題,說實話,我沒有答案。

1

Applets在客戶機上運行,​​並且不知道瀏覽器向服務器發送的請求。如果您想要包含來自請求的信息,我建議在生成網頁時將其作爲參數添加到小程序標記中。

相關問題