我建立一個多國語言的Grails網站,我需要得到一個數的序後綴幾種語言如英語,法語,西班牙語,德語和意大利語。如何得到一個數字的序數後綴,在Java或Groovy
我認爲這個問題對於多語言網站所有者來說是相當普遍的。我發現this article提供了一個解決方案,但它只是英文。
例如:
/**
*@value number
*@locale Current locale
*@returns ordinal suffix for the given number
**/
public static String getOrdinalFor(int value, Locale locale)
會給出以下結果:
assert getOrdinalFor(1, Locale.ENGLISH) == "st"
assert getOrdinalFor(1, Locale.FRENCH) == "er"
assert getOrdinalFor(2, Locale.ENGLISH) == "nd"
assert getOrdinalFor(3, Locale.ENGLISH) == "rd"
assert getOrdinalFor(4, Locale.ENGLISH) == "th"
assert getOrdinalFor(4, Locale.FRENCH) == "ème"
你知道一個庫(在Java中或Groovy),可以幫助呢?或者你知道一個實現它的算法嗎?
或「ersten」取決於句子結構 – Thilo 2010-01-15 12:51:58
我同意這很複雜。也許所有語言都不可能。但對於英語,西班牙語,法語和德語等西方語言,我相信這是可能的(並且不難實現)。令人驚訝的是,沒有庫AFAIK能部分解決這種常見情況...... – fabien7474 2010-01-15 14:15:14
是的,如果可以的話,嘗試避開這個要求。無論如何,你需要這些後綴?一旦你超越了第一,第二和第三,你真的需要額外的嗎? – 2010-01-16 06:02:13