2011-08-10 67 views
2

我想提供下拉菜單,以便用戶可以在多語言Web應用程序中選擇其國家和州。本地化州/省數據

我能夠從unicode.org的cldr文件中以各種語言提取國家列表和這些國家的名稱。

目前這些都存儲在數組中的單獨文件(我有文件,如en.php,es.php,fr.php等)。

儘管這看起來不太困難,但我無法以本地化的形式獲得行政區劃(州/省/州)的列表。從本質上講,如果這個人使用的是法國版本(fr_fr),那麼當他選擇「法國」作爲他的國家時,我希望這些國家下降的時候會有法國各個部門填充。

我在geonames.org上發現了一些數據:http://www.geonames.org/GB/administrative-division-united-kingdom.html但所有內容似乎都是英文的,所以我無法提供本地化狀態。此外,英國等一些國家在「行政區劃」中有兩組數據,這可能會使數據自動獲取有些問題。

同樣的,如果有人使用日文版,那麼縣下拉應該包含日文縣。至於其他國家,我認爲將所有行政區劃翻譯成日文是不可行的,所以拖欠英文是好的。另外,各國對於行政區劃(國家/地區/省/州,也許還有其他一些我錯過的條款)有不同的條款,我想將這些數據放在某個地方,以便當有人說日本時,而不是標籤爲「狀態」的標籤爲「縣」

我的另一個問題是存儲所有數據的地方,此刻我傾向於存儲行政區劃(州)和標籤(州,縣等)在一個更具體的文件包含語言環境(en_US.php,en_GB.php等)陣列。

有沒有人處理過這樣的項目?喜歡聽你的建議/意見。另外,如果某人能夠提供可以獲得本地化狀態的來源,那將是非常好的。

編輯

  • 郵碼:有些國家沒有POST代碼,所以我需要存儲這些信息,並確保提交時,郵政編碼是不是必需的。
  • 可選狀態:如前所述。有些國家沒有國家,所以這需要以某種方式存儲。
+0

請注意,對於大多數國家來說,州與您的地址無關。我住在德國,*討厭*選擇我的國家,因爲它沒關係。德國沒有人使用國家郵政地址。 – cweiske

+0

我同意。幾乎忘了那個!還增加了我的OP中某些國家不使用郵政編碼的要求。 – F21

回答

4

你在使用州/省的數據?如果是用於郵寄的話,請記住,在許多國家的郵寄地址中不需要州/省(通常不會提供),如果您在不需要時詢問它,您就會惹惱用戶。

郵政編碼對於郵寄來說更重要,Unicode CLDR具有158個國家的郵政編碼驗證正則表達式。 (這是在補充/ postalCodeData。XML當你下載CLDR)

如果你真的想要州/省,再有一個CLDR建議地址格式信息添加到這裏的CLDR - http://unicode.org/review/pri180/

你會注意到,該提案鏈接到一個谷歌appengine服務,其中包含擬議的地址格式信息 - http://i18napis.appspot.com/address

州/省​​似乎在那裏列出,但只適用於郵政地址需要這些信息的國家。它看起來像翻譯成了每個國家的語言 - 例如,加拿大的省名都以英文和法文列出。例如,它還告訴你,它在日本被稱爲一個縣

如果你真的,真的想要所有的細分,無論是否需要在郵政地址,然後抓住ISO 3166-2。在此處購買 - http://www.iso.org/iso/country_codes/iso_3166_databases.htm(您也可以從維基百科網站獲取ISO-3166-2)