java - 如何在 Java 或 Groovy 中为多种语言获取数字的序数后缀

标签 java grails localization groovy

我正在构建一个多语言 grails 网站,我需要获取多种语言的数字的序数后缀,例如英语、法语、西类牙语、德语和意大利语.

我相信这个问题对于多语言网站所有者来说很常见。我找到了 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)吗?或者您知道实现它的算法吗?

最佳答案

我认为在许多语言中这种方法是不可能的,因为它们根本没有可以由数字和一些字母作为扩展组成的序数的概念。对于“1st”,即在德语中,您只能写“1”。或“erster”/“erste”/“erstes”,具体取决于您编号的属。

关于java - 如何在 Java 或 Groovy 中为多种语言获取数字的序数后缀,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2071286/

相关文章:

java - Java中是否有必要在每个类中都有一个构造函数

java - 如果时钟改变,Timertask.scheduleAtFixedRate 应该做什么?

java - Android Socket UI 错误

json - 无法获得JSON.registerObjectMarshaller()在Grails 1.3.7中创建自定义JSON

Excel 使用基于用户语言的函数

java - 如何在 JVM 中设置默认区域设置?

java - 当 html post 上没有值传递到 Java Servlet 时,将值设置为 0

grails - 在grails中将long类型检查为null有什么需要

javascript - 为什么我的Grails应用程序无法从Angular脚本中获取对象?

localization - 欧洲人如何写带有小数的数字列表?