<?
function pluralForm($n, $form1, $form2, $form5)
{
$n = abs($n) % 100;
$n1 = $n % 10;
if ($n > 10 && $n < 20) return $form5;
if ($n1 > 1 && $n1 < 5) return $form2;
if ($n1 == 1) return $form1;
return $form5;
}
//
echo " $n ".pluralForm($n, "", "", "");
?>
private Integer plurals(Long n){
if (n==0) return 0;
n = Math.abs(n) % 100;
Long n1 = n % 10;
if (n > 10 && n < 20) return 5;
if (n1 > 1 && n1 < 5) return 2;
if (n1 == 1) return 1;
return 5;
}
BUDGET_FORMAT={0,choice,0#|0<{0,number,'#.###'} |1#{0,number,integer} |1<{0,number,'#.###'} |5#{0,number,'#.###'} } {1,choice,0#|0<{1,number,'#.###'} |1#{1,number,integer} |1<{1,number,'#.###'} |5#{1,number,'#.###'} }
BUDGET_FORMAT={0,choice,0#|0<{0,number,'#.###'} years|1#{0,number,integer} year|1<{0,number,'#.###'} years {1,choice,0#|0<{1,number,'#.###'} months|1#{1,number,integer} month|1<{1,number,'#.###'} months
public String getString() {
// :
Integer year = plurals(getYears().intValue());
Integer month = plurals(getMonths().intValue());
return I18n.getString(this.locale, "BUDGET_FORMAT", new Object[]{getYears(), getMonths(), year, month});
}
BUDGET_FORMAT={ 2 ,choice,0#|0<{0,number,'#.###'} |1#{0,number,integer} |1<{0,number,'#.###'} |5#{0,number,'#.###'} } { 3 ,choice,0#|0<{1,number,'#.###'} |1#{1,number,integer} |1<{1,number,'#.###'} |5#{1,number,'#.###'} }
System.out.println(i18n.trc("chat (verb)", "chat"));
System.out.println(i18n.trc("chat (noun)", "chat"));
Source: https://habr.com/ru/post/37579/