(svn r16811) -Change: introduce a plural 'rule' for Korean

This commit is contained in:
rubidium 2009-07-13 14:42:09 +00:00
parent 2956bad7fa
commit bb9fee178d
3 changed files with 28 additions and 1 deletions

View File

@ -1,7 +1,7 @@
##name Korean
##ownname 한국어
##isocode ko_KR
##plural 1
##plural 11
##textdir ltr
##digitsep .
##digitsepcur .

View File

@ -430,6 +430,32 @@ static int DeterminePluralForm(int64 count)
* Czech */
case 10:
return n == 1 ? 0 : n >= 2 && n <= 4 ? 1 : 2;
/* Two forms, special 'hack' for Korean; singular for numbers ending
* in a consonant and plural for numbers ending in a vowel.
* Korean doesn't have the concept of plural, but depending on how a
* number is pronounced it needs another version of a particle.
* As such the plural system is misused to give this distinction.
*/
case 11:
switch (n % 10) {
case 0: // yeong
case 1: // il
case 3: // sam
case 6: // yuk
case 7: // chil
case 8: // pal
return 0;
case 2: // i
case 4: // sa
case 5: // o
case 9: // gu
return 1;
default:
NOT_REACHED();
}
}
}

View File

@ -161,6 +161,7 @@ static const PluralForm _plural_forms[] = {
{ 4, "Four forms, special case for 1 and all numbers ending in 02, 03, or 04" },
{ 2, "Two forms, singular used for everything ending in 1 but not in 11" },
{ 3, "Three forms, special case for 1 and 2, 3, or 4" },
{ 2, "Two forms, cases for numbers ending with a consonant and with a vowel" },
};
/* Flags: