2013-09-30 33 views
1

在PHP <中5.5不支持具有命名參數的Intl MessageFormatter字符串。 使用一些語言和字符串會導致翻譯字符串很難理解。Howto在PHP 5.3中實現ICU MessageFormatter命名參數支持PHP 5.5中的

PHP 5.4(PHP < 5.5)

$Formater = new MessageFormatter($locale, "{0} inhabit {1}."); 

print $Formater->format(array('Wookies', 'Kashyyyk')); 

與PHP 5.5命名參數

$Formater = new MessageFormatter($locale, "{raceName} inhabit {planetName}."); 

print $Formater->format(array('raceName'=>'Wookies', 'planetName=>'Kashyyyk')); 

我們的軟件已經可以支持PHP的版本從5.3 - >到最新的,但我想讓翻譯更容易。

任何人都可以提供一種方法來實現PHPFor的MessageFormatter命名參數< 5.5?

+0

我正在於它的Yii2框架,但與現在的字符串替換還挺stucked:https://github.com/yiisoft/yii2/pull/917/files#diff-0968cc0757071ec901e4c4dfac1145cdR20。這個想法是將命名參數轉換爲位置參數。 –

回答

0

pecl install intl-beta爲我工作,但那是幾乎一年前。不知道現在是如何。 可以簡單pecl install intl