我想用命名的參數傳遞給MessageFormater一個字符串,這樣爲INTL MessageFormatter命名的參數與PHP
$fmt = new MessageFormatter("en_US", "My name id {my_name}");
$fmt->format(array('my_name' => 'John'));
當我運行此代碼,我得到錯誤信息:
$fmt->getErrorMessage() returns
數字格式失敗:U_ILLEGAL_ARGUMENT_ERROR
瓦ereas
$fmt = new MessageFormatter("en_US", "My name id {0}");
$fmt->format(array(0 => 'John'));
效果很好。該命名參數
ICU項目網站報告,因爲ICU 3.8(Seen here)的支持,我用的是4.2.1
哪裏麒麟? PHP不支持MessageFormatter的命名參數? 也許有另一種選擇?
嗨,我編輯了我的主題以尋求替代方案。 – Tristan 2012-02-23 11:10:23
我知道這種方式。我的文本也發送給譯員。我想避免%d,%s。翻譯「我的名字是{my_name}」比「我的名字是%s」最簡單。這是一個不好的例子,因爲很容易理解這句話的含義,但有時並非如此。 – Tristan 2012-02-23 11:45:55