隨着PHP +5.3和6來了幾個新的國際班。其中之一是MessageFormatter類,這似乎是一個不完整的想法。我希望我只是俯視一些東西。什麼是PHP 5.3中的MessageFormatter類?
給出的例子似乎表明,如果你已經知道你正在使用的語言,那麼這個類將正確地爲你設置格式。
<?php
echo msgfmt_format_message("en_US", "{0,number,integer} monkeys on {1,number,integer} trees make {2,number} monkeys per tree", array(4560, 123, 4560/123));
echo msgfmt_format_message("de", "{0,number,integer} Affen auf {1,number,integer} Bäumen sind {2,number} Affen pro Baum", array(4560, 123, 4560/123));
?>
這使得:
4,560 monkeys on 123 trees make 37.073 monkeys per tree
4.560 Affen auf 123 Bäumen sind 37,073 Affen pro Baum
現在,如果你已經知道的langauge(這就是爲什麼你必須寫它),那麼你爲什麼不只是使用number_format()功能,你需要正確的號碼?爲什麼你需要整個班級呢?
做格式化數字之外的事情的一個例子真的會有所幫助。
gettext喜歡字符串/複數排序,使得這個類值得。在PHP中,gettext仍然是非常麻煩和尷尬的,我仍然只使用基於PHP的語言文件,並且能夠使用這個類來選擇複數形式真的有幫助。 – Xeoncross 2010-03-02 21:37:23
@Xeoncross使用什麼適合。這只是一個你可以選擇和使用的軟件包,比如數學vs bc_math或GD與imagemagick。 – Gordon 2010-03-02 22:04:01
你的答案可能不如Pascal的 - 但這種複數化的例子就是我所期待的,DevZone的文章也非常有用。謝謝! – Xeoncross 2010-03-03 16:03:19