2010-03-04 19 views
4

Babel or pybabel是在Python CLDR(通用語言環境數據庫)的接口。因此,它具有與PHP的i18n函數和類相同的「知識」(如果適當的語言環境安裝在主機上),但沒有使用像setlocale()這樣的過程範圍設置的麻煩。pybabel或其它L10N庫PHP

是否有類似的庫或工具包爲PHP?尤其是實現:

  1. 數字轉換來來回回的語言和地區特定格式

  2. 轉換日期也

  3. 訪問的名稱,在某個地區的貨幣和其他信息(如,如

    >>> from babel import Locale 
    >>> locale = Locale('en', 'US') 
    >>> locale.territories['US'] 
    u'United States' 
    >>> locale = Locale('es', 'MX') 
    >>> locale.territories['US'] 
    u'Estados Unidos' 
    

回答

2

PHP 5.3自帶intl延伸:

國際擴展 (進一步被稱爲國際機場)是 包裝器ICU庫,使PHP 程序員執行UCA符合的 整理和 日期/時間/數字/貨幣格式 在他們的腳本。

  1. 將數字轉換是可能的的NumberFormatter類:

    $fmt = new NumberFormatter("de_DE", NumberFormatter::DECIMAL); 
    echo $fmt->format(1234567.891234567890000); 
    
  2. 轉換日期是可能的IntlDateFormatter類:

    $fmt = new IntlDateFormatter("en_US", IntlDateFormatter::FULL, IntlDateFormatter::FULL, 'America/Los_Angeles', IntlDateFormatter::GREGORIAN); 
    echo $fmt->format(0); 
    
  3. 訪問名稱,貨幣且在一定的區域設置的其他信息是可能的區域設置類:

    echo Locale::getRegion('de-CH-1901'); 
    

此外,還有整理MessageFormatter類。

+0

裸記住,'地點:: getRegion()'方法不爲Python的'territories'財產返還相同種類的東西。 – 2013-04-20 08:57:52