summaryrefslogtreecommitdiff
path: root/src/strings.cpp
diff options
context:
space:
mode:
authorrubidium <rubidium@openttd.org>2009-07-13 14:42:09 +0000
committerrubidium <rubidium@openttd.org>2009-07-13 14:42:09 +0000
commitbb9fee178da65f6b606e6853821f15a26c1ab3eb (patch)
treeb06529a57e4c95132c360439d0c8a8c360eb66e7 /src/strings.cpp
parent2956bad7fac61fd3535fc1059295c1c3ec05ffd7 (diff)
downloadopenttd-bb9fee178da65f6b606e6853821f15a26c1ab3eb.tar.xz
(svn r16811) -Change: introduce a plural 'rule' for Korean
Diffstat (limited to 'src/strings.cpp')
-rw-r--r--src/strings.cpp26
1 files changed, 26 insertions, 0 deletions
diff --git a/src/strings.cpp b/src/strings.cpp
index edf7d8819..b113cf915 100644
--- a/src/strings.cpp
+++ b/src/strings.cpp
@@ -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();
+ }
}
}