in velocity-tools-generic/src/main/java/org/apache/velocity/tools/generic/DisplayTool.java [810:851]
public String plural(int value, String singular, String plural)
{
if (value == 1 || value == -1)
{
return singular;
}
else if (plural != null)
{
return plural;
}
else if (singular == null || singular.length() == 0)
{
return singular;
}
else
{
//if the last letter is capital then we will append capital letters
boolean isCapital = !singular.substring(singular.length() - 1)
.toLowerCase().equals(singular
.substring(singular.length() - 1));
String word = singular.toLowerCase();
if (word.endsWith("x") || word.endsWith("sh")
|| word.endsWith("ch") || word.endsWith("s"))
{
return singular.concat(isCapital ? "ES" : "es");
}
else if (word.length() > 1
&& word.endsWith("y")
&& !word.substring(word.length() - 2, word.length() - 1)
.matches("[aeiou]"))
{
return singular.substring(0, singular.length() - 1)
.concat(isCapital ? "IES" : "ies");
}
else
{
return singular.concat(isCapital ? "S" : "s");
}
}
}