https://github.com/fluidsonic/fluid-locale
Kotlin multiplatform locale library (experimental)
https://github.com/fluidsonic/fluid-locale
kotlin kotlin-multiplatform locale
Last synced: 3 months ago
JSON representation
Kotlin multiplatform locale library (experimental)
- Host: GitHub
- URL: https://github.com/fluidsonic/fluid-locale
- Owner: fluidsonic
- License: apache-2.0
- Created: 2020-08-12T11:41:14.000Z (almost 5 years ago)
- Default Branch: master
- Last Pushed: 2023-06-24T03:29:34.000Z (about 2 years ago)
- Last Synced: 2025-03-27T19:41:42.386Z (4 months ago)
- Topics: kotlin, kotlin-multiplatform, locale
- Language: Kotlin
- Homepage:
- Size: 327 KB
- Stars: 15
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
fluid-locale
============[](https://search.maven.org/artifact/io.fluidsonic.locale/fluid-locale)
[](https://github.com/fluidsonic/fluid-locale/actions?workflow=Tests)
[-blue.svg)](https://github.com/JetBrains/kotlin/releases/v1.8.22)
[](https://kotlinlang.slack.com/messages/C7UDFSVT2/)Kotlin multiplatform locale library.
**Experimental. Feel free to contribute!**Installation
------------`build.gradle.kts`:
```kotlin
dependencies {
implementation("io.fluidsonic.locale:fluid-locale:0.13.0")
}
```Usage
-----### `class Locale`
For now this is only a thin layer over a `LanguageTag`. To be improved.
```kotlin
val locale = Locale.forLanguageTag("en-us") // throws if tag is not well-formed
println(locale.language) // en
println(locale.region) // US
println(locale.toLanguageTag()) // en-US
``````kotlin
val locale = Locale.forLanguageTagOrNull("a-b-c-1-2-3") // null if tag is not well-formed
println(locale) // null
``````kotlin
val locale = Locale.forLanguage("en", region = "US")
println(locale.language) // en
println(locale.region) // US
println(locale.toLanguageTag()) // en-US
```### `class LanguageTag`
A class for BCP 47 language tags (e.g. `en`, `en-US` or `sl-IT-nedis`).
```kotlin
val tag = LanguageTag.parse("ZH-HANT-cn-somevar") // throws if tag is not well-formed
println(tag.language) // zh
println(tag.script) // Hant
println(tag.region) // CN
println(tag.variants) // [somevar]
println(tag.toString()) // zh-Hant-CN-somevar
``````kotlin
val tag = LanguageTag.parseOrNull("a-b-c-1-2-3") // null if tag is not well-formed
println(tag) // null
``````kotlin
val tag = LanguageTag.forLanguage("ZH", script = "HANT", region = "cn", variants = listOf("somevar"))
println(tag.language) // zh
println(tag.script) // Hant
println(tag.region) // CN
println(tag.variants) // [somevar]
println(tag.toString()) // zh-Hant-CN-somevar
```License
-------Apache 2.0