From eb27b2a497d8cd5639e3646cb482b678143fce12 Mon Sep 17 00:00:00 2001 From: Jacob Ras Date: Thu, 11 Jan 2024 12:58:17 +0100 Subject: [PATCH 1/9] Add Czech plural rules --- .../io/github/skeptick/libres/strings/PluralRules.kt | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/libres-core/src/appleAndJsMain/kotlin/io/github/skeptick/libres/strings/PluralRules.kt b/libres-core/src/appleAndJsMain/kotlin/io/github/skeptick/libres/strings/PluralRules.kt index c746c14..a54bfe1 100644 --- a/libres-core/src/appleAndJsMain/kotlin/io/github/skeptick/libres/strings/PluralRules.kt +++ b/libres-core/src/appleAndJsMain/kotlin/io/github/skeptick/libres/strings/PluralRules.kt @@ -62,6 +62,14 @@ object PluralRules { } } + private val Czech = PluralRule { number -> + when (number) { + 1 -> One + in (2..4) -> Few + else -> Other + } + } + operator fun set(languageCode: String, value: PluralRule) { custom[languageCode] = value } @@ -73,6 +81,7 @@ object PluralRules { "uk" -> Ukrainian "kk" -> Kazakh "fr" -> French + "cs" -> Czech else -> custom[languageCode] ?: error("Plural rule for '$languageCode' not provided") } } From 42fe5541c77cd9f41d4f517ce25fac47f9169db2 Mon Sep 17 00:00:00 2001 From: Jacob Ras Date: Thu, 11 Jan 2024 12:42:33 +0100 Subject: [PATCH 2/9] Add Indonesian plural rules --- .../kotlin/io/github/skeptick/libres/strings/PluralRules.kt | 3 +++ 1 file changed, 3 insertions(+) diff --git a/libres-core/src/appleAndJsMain/kotlin/io/github/skeptick/libres/strings/PluralRules.kt b/libres-core/src/appleAndJsMain/kotlin/io/github/skeptick/libres/strings/PluralRules.kt index a54bfe1..fc2713a 100644 --- a/libres-core/src/appleAndJsMain/kotlin/io/github/skeptick/libres/strings/PluralRules.kt +++ b/libres-core/src/appleAndJsMain/kotlin/io/github/skeptick/libres/strings/PluralRules.kt @@ -70,6 +70,8 @@ object PluralRules { } } + private val Indonesian = PluralRule { Other } + operator fun set(languageCode: String, value: PluralRule) { custom[languageCode] = value } @@ -82,6 +84,7 @@ object PluralRules { "kk" -> Kazakh "fr" -> French "cs" -> Czech + "id" -> Indonesian else -> custom[languageCode] ?: error("Plural rule for '$languageCode' not provided") } } From eef257e176dc78c43e0d24197e5c3cea21d75339 Mon Sep 17 00:00:00 2001 From: Jacob Ras Date: Thu, 11 Jan 2024 12:52:16 +0100 Subject: [PATCH 3/9] Add Polish plural rules --- .../io/github/skeptick/libres/strings/PluralRules.kt | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/libres-core/src/appleAndJsMain/kotlin/io/github/skeptick/libres/strings/PluralRules.kt b/libres-core/src/appleAndJsMain/kotlin/io/github/skeptick/libres/strings/PluralRules.kt index fc2713a..f3fd804 100644 --- a/libres-core/src/appleAndJsMain/kotlin/io/github/skeptick/libres/strings/PluralRules.kt +++ b/libres-core/src/appleAndJsMain/kotlin/io/github/skeptick/libres/strings/PluralRules.kt @@ -72,6 +72,14 @@ object PluralRules { private val Indonesian = PluralRule { Other } + private val Polish = PluralRule { number -> + when { + number == 1 -> One + (number % 10) in 2..4 && (number % 100) !in 12..14 -> Few + else -> Many + } + } + operator fun set(languageCode: String, value: PluralRule) { custom[languageCode] = value } @@ -85,6 +93,7 @@ object PluralRules { "fr" -> French "cs" -> Czech "id" -> Indonesian + "pl" -> Polish else -> custom[languageCode] ?: error("Plural rule for '$languageCode' not provided") } } From 48a4c4fd89a4358e966161001a8050caec70d3cb Mon Sep 17 00:00:00 2001 From: Jacob Ras Date: Thu, 11 Jan 2024 12:53:17 +0100 Subject: [PATCH 4/9] Add Chinese plural rules --- .../kotlin/io/github/skeptick/libres/strings/PluralRules.kt | 3 +++ 1 file changed, 3 insertions(+) diff --git a/libres-core/src/appleAndJsMain/kotlin/io/github/skeptick/libres/strings/PluralRules.kt b/libres-core/src/appleAndJsMain/kotlin/io/github/skeptick/libres/strings/PluralRules.kt index f3fd804..54e5c27 100644 --- a/libres-core/src/appleAndJsMain/kotlin/io/github/skeptick/libres/strings/PluralRules.kt +++ b/libres-core/src/appleAndJsMain/kotlin/io/github/skeptick/libres/strings/PluralRules.kt @@ -80,6 +80,8 @@ object PluralRules { } } + private val Chinese = PluralRule { Other } + operator fun set(languageCode: String, value: PluralRule) { custom[languageCode] = value } @@ -94,6 +96,7 @@ object PluralRules { "cs" -> Czech "id" -> Indonesian "pl" -> Polish + "zh" -> Chinese else -> custom[languageCode] ?: error("Plural rule for '$languageCode' not provided") } } From 73ec340099faba657959716eac65bd9a607f82b7 Mon Sep 17 00:00:00 2001 From: Jacob Ras Date: Sat, 13 Jan 2024 23:36:11 +0100 Subject: [PATCH 5/9] Add Uzbek plural rules --- .../io/github/skeptick/libres/strings/PluralRules.kt | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/libres-core/src/appleAndJsMain/kotlin/io/github/skeptick/libres/strings/PluralRules.kt b/libres-core/src/appleAndJsMain/kotlin/io/github/skeptick/libres/strings/PluralRules.kt index 54e5c27..627127e 100644 --- a/libres-core/src/appleAndJsMain/kotlin/io/github/skeptick/libres/strings/PluralRules.kt +++ b/libres-core/src/appleAndJsMain/kotlin/io/github/skeptick/libres/strings/PluralRules.kt @@ -82,6 +82,13 @@ object PluralRules { private val Chinese = PluralRule { Other } + private val Uzbek = PluralRule { number -> + when (number) { + 1 -> One + else -> Other + } + } + operator fun set(languageCode: String, value: PluralRule) { custom[languageCode] = value } @@ -97,6 +104,7 @@ object PluralRules { "id" -> Indonesian "pl" -> Polish "zh" -> Chinese + "uz" -> Uzbek else -> custom[languageCode] ?: error("Plural rule for '$languageCode' not provided") } } From fc1e14495173ebe1d32aa74ad493051e6af43e02 Mon Sep 17 00:00:00 2001 From: Jacob Ras Date: Mon, 15 Jan 2024 13:34:17 +0100 Subject: [PATCH 6/9] Add Japanese plural rules --- .../kotlin/io/github/skeptick/libres/strings/PluralRules.kt | 3 +++ 1 file changed, 3 insertions(+) diff --git a/libres-core/src/appleAndJsMain/kotlin/io/github/skeptick/libres/strings/PluralRules.kt b/libres-core/src/appleAndJsMain/kotlin/io/github/skeptick/libres/strings/PluralRules.kt index 627127e..5f2c0f1 100644 --- a/libres-core/src/appleAndJsMain/kotlin/io/github/skeptick/libres/strings/PluralRules.kt +++ b/libres-core/src/appleAndJsMain/kotlin/io/github/skeptick/libres/strings/PluralRules.kt @@ -89,6 +89,8 @@ object PluralRules { } } + private val Japanese = PluralRule { Other } + operator fun set(languageCode: String, value: PluralRule) { custom[languageCode] = value } @@ -105,6 +107,7 @@ object PluralRules { "pl" -> Polish "zh" -> Chinese "uz" -> Uzbek + "ja" -> Japanese else -> custom[languageCode] ?: error("Plural rule for '$languageCode' not provided") } } From e1629eb5c43ecc631923d46b05fb79c2513c4d50 Mon Sep 17 00:00:00 2001 From: Jacob Ras Date: Mon, 15 Jan 2024 13:34:22 +0100 Subject: [PATCH 7/9] Add Korean plural rules --- .../kotlin/io/github/skeptick/libres/strings/PluralRules.kt | 3 +++ 1 file changed, 3 insertions(+) diff --git a/libres-core/src/appleAndJsMain/kotlin/io/github/skeptick/libres/strings/PluralRules.kt b/libres-core/src/appleAndJsMain/kotlin/io/github/skeptick/libres/strings/PluralRules.kt index 5f2c0f1..fb8e282 100644 --- a/libres-core/src/appleAndJsMain/kotlin/io/github/skeptick/libres/strings/PluralRules.kt +++ b/libres-core/src/appleAndJsMain/kotlin/io/github/skeptick/libres/strings/PluralRules.kt @@ -91,6 +91,8 @@ object PluralRules { private val Japanese = PluralRule { Other } + private val Korean = PluralRule { Other } + operator fun set(languageCode: String, value: PluralRule) { custom[languageCode] = value } @@ -108,6 +110,7 @@ object PluralRules { "zh" -> Chinese "uz" -> Uzbek "ja" -> Japanese + "ko" -> Korean else -> custom[languageCode] ?: error("Plural rule for '$languageCode' not provided") } } From 572f30bc0c88427f3dbbea9557d8f404eb57a4b3 Mon Sep 17 00:00:00 2001 From: Jacob Ras Date: Thu, 18 Jan 2024 20:19:40 +0100 Subject: [PATCH 8/9] Add Vietnamese plural rules --- .../kotlin/io/github/skeptick/libres/strings/PluralRules.kt | 3 +++ 1 file changed, 3 insertions(+) diff --git a/libres-core/src/appleAndJsMain/kotlin/io/github/skeptick/libres/strings/PluralRules.kt b/libres-core/src/appleAndJsMain/kotlin/io/github/skeptick/libres/strings/PluralRules.kt index fb8e282..172b90d 100644 --- a/libres-core/src/appleAndJsMain/kotlin/io/github/skeptick/libres/strings/PluralRules.kt +++ b/libres-core/src/appleAndJsMain/kotlin/io/github/skeptick/libres/strings/PluralRules.kt @@ -93,6 +93,8 @@ object PluralRules { private val Korean = PluralRule { Other } + private val Vietnamese = PluralRule { Other } + operator fun set(languageCode: String, value: PluralRule) { custom[languageCode] = value } @@ -111,6 +113,7 @@ object PluralRules { "uz" -> Uzbek "ja" -> Japanese "ko" -> Korean + "vi" -> Vietnamese else -> custom[languageCode] ?: error("Plural rule for '$languageCode' not provided") } } From bd20e0eccda2b9787564d23414e055ae63cae072 Mon Sep 17 00:00:00 2001 From: Jacob Ras Date: Thu, 8 Feb 2024 10:17:40 +0100 Subject: [PATCH 9/9] Add Finnish plural rules --- .../io/github/skeptick/libres/strings/PluralRules.kt | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/libres-core/src/appleAndJsMain/kotlin/io/github/skeptick/libres/strings/PluralRules.kt b/libres-core/src/appleAndJsMain/kotlin/io/github/skeptick/libres/strings/PluralRules.kt index 172b90d..5163f7c 100644 --- a/libres-core/src/appleAndJsMain/kotlin/io/github/skeptick/libres/strings/PluralRules.kt +++ b/libres-core/src/appleAndJsMain/kotlin/io/github/skeptick/libres/strings/PluralRules.kt @@ -95,6 +95,13 @@ object PluralRules { private val Vietnamese = PluralRule { Other } + private val Finnish = PluralRule { number -> + when (number) { + 1 -> One + else -> Other + } + } + operator fun set(languageCode: String, value: PluralRule) { custom[languageCode] = value } @@ -114,6 +121,7 @@ object PluralRules { "ja" -> Japanese "ko" -> Korean "vi" -> Vietnamese + "fi" -> Finnish else -> custom[languageCode] ?: error("Plural rule for '$languageCode' not provided") } }