2009-09-20 94 views
0

我住印度(擁有超過20種語言)我試圖在網站上實現java國際化。本地語言的java國際化

但是在Locale.getAvailableLocales()中,本地語言不可用。在我的情況下是否有可能實現國際化?

如果可能的話會發生什麼字體?我如何在客戶端瀏覽器中加載正確的字體?

哪個框架實現Struts或Spring?

回答

0

我認爲你在這裏提出了多個問題,它們是相互正交的。

對於Locale.getAvailableLocales()問題。如果內置區域設置不夠,則可以簡單地創建更多。語言環境對象只是表示程序知道的語言環境,與系統執行的操作無關 - 更具體地說,沒有相應的語言環境對象並不意味着您不能支持語言環境。

對於字體,通常情況下,您將爲i18n網站使用UTF-8,所以只要您的內容類型和字符集設置正確,它應該在客戶端瀏覽器中正確呈現。

框架問題真的取決於你想要完成什麼,以及你想從中獲得什麼。

+0

我認爲你對字體的評論是有誤導性的;用於對頁面進行編碼的編碼與最終用戶PC上可用字體的字形集合無關。 (使用UTF-8是一個好主意,但它不能解決所有人物問題。) – McDowell

+0

你是對的,我過於簡化了。使用UTF-8作爲輸出編碼使其適用於大多數場景;然而,這是假設用戶具有現代瀏覽器,您期望在用戶的機器上找到的常用字體以及可能的語言支持包。 – phsiao

+0

@McDowell:我不同意。任何訪問網站(例如,提供中文字符)的人使用沒有安裝所需字體的系統都已經死在水中。主機無法做更多的事情,它能夠爲字符集和內容編碼提供正確編碼的Unicode和適當的標題。事實上,目前使用的幾乎所有主流操作系統都默認安裝了字體,涵蓋除亞洲語言之外的所有當前使用的語言;而且由於它們的尺寸很大,通常可以單獨下載安裝。 –

0

我相信在使用JDK而不是JRE時可用的語言環境更多。

1

我不能說自己是Java國際化的專家 - 我關心本地化的所有工作都要追溯到我們必須手工完成的所有工作。

如果您不想這樣做(現在不比現在更難),看起來您仍然可以使用Java的自動化I18N服務。

看來,爲了支持語言,數字格式,等等,這些都是尚未支持的語言環境,你必須創造一個語言環境敏感的服務提供商,其中有6

有更容易看起來像一個很好的教程here

0

Locale.getAvailableLocales()返回LocalData安裝在JRE的sun.text.resources包中的語言環境列表。

此列表可能無關緊要。目前,LocalData僅包含本地號碼和日期格式信息。如果您沒有任何特殊格式,您可以選擇格式與您的格式相同的語言環境,例如「en_IN」。

字符集是另一個問題。如果您本地化的資源是以Unicode編碼的,那麼您已經設置好了。否則,您需要確保Java支持字符集/編碼,以便它可以正確轉換它。

不要擔心字體。它與服務器無關。它可以在HTML或CSS中指定。只要瀏覽器支持字體,你就會好起來的。

Java本身就是I18N,因此使用哪個框架並不重要。 Struts爲I18N提供taglib(bean:message),但您也可以使用JSTL(fmt:message)。