2011-08-09 185 views
1

可能重複:
How to get the default currency from the PHP Intl (ICU library)獲取語言環境的貨幣

我使用PHP中的國際擴展處理本地化內容和格式的東西。由於我已經知道en_US等語言環境,是否有可能從PHP獲取語言環境的貨幣?

如果區域設置爲en_US,則應該獲得$或USD,如果區域設置爲en_AU,則應該獲得$或$ AUD。

我需要將3個字母的ISO 4217貨幣代碼傳遞給numberFormatter :: Currency。

謝謝:)

+1

我使用intformat擴展中的numberformatter :: Currency進行格式設置,所以這種方法無效。 – F21

+1

檢查@戈登的答案:http://stackoverflow.com/a/8325456/419 – Kev

回答

0

localeconv()功能會給你一些關於當前區域有用的事實,包括國際貨幣符號(如int_curr_symbol)的。

如果您感興趣的語言環境未設置爲當前語言環境,則必須使用setlocale()臨時切換到該語言環境。

+0

這將是理想的,但setlocale是如此不一致的系統,我寧願避免它。 – F21

+0

這是關於最好的你會得到沒有硬編碼表映射區域設置貨幣符號,但。包括Linux在內的許多系統在libc中沒有任何函數來從不活動的語言環境獲取數據。 – duskwuff

+0

如果您使用框架或有權訪問框架,則可能需要使用與系統無關的實現。 –

相關問題