add getCurrentLocale and compose translation

This commit is contained in:
2025-10-31 19:34:09 +06:00
parent 0b701a3e99
commit fce47897d5
15 changed files with 163 additions and 0 deletions

View File

@@ -0,0 +1,20 @@
plugins {
id "org.jetbrains.kotlin.multiplatform"
id "org.jetbrains.kotlin.plugin.serialization"
id "com.android.library"
alias(libs.plugins.jb.compose)
alias(libs.plugins.kt.jb.compose)
}
apply from: "$mppComposeJvmJsWasmJsAndroidLinuxMingwLinuxArm64Project"
kotlin {
sourceSets {
commonMain {
dependencies {
api libs.kt.coroutines
api project(":micro_utils.resources")
}
}
}
}

View File

@@ -0,0 +1,24 @@
package dev.inmo.micro_utils.resources.compose
import android.os.Build
import androidx.compose.runtime.Composable
import androidx.compose.ui.platform.LocalConfiguration
import dev.inmo.micro_utils.language_codes.IetfLang
import dev.inmo.micro_utils.language_codes.toIetfLang
@Composable
actual fun getCurrentLocale(): IetfLang? {
val configuration = LocalConfiguration.current
val locale = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
if (configuration.locales.isEmpty) {
return null
}
configuration.locales.get(0)
} else {
@Suppress("DEPRECATION")
configuration.locale
}
return locale.toIetfLang()
}

View File

@@ -0,0 +1,7 @@
package dev.inmo.micro_utils.resources.compose
import androidx.compose.runtime.Composable
import dev.inmo.micro_utils.language_codes.IetfLang
@Composable
expect fun getCurrentLocale(): IetfLang?

View File

@@ -0,0 +1,10 @@
package dev.inmo.micro_utils.resources.compose
import androidx.compose.runtime.Composable
import dev.inmo.micro_utils.strings.StringResource
@Suppress("unused")
@Composable
fun StringResource.composeTranslation(): String {
return translation(getCurrentLocale())
}

View File

@@ -0,0 +1,9 @@
package dev.inmo.micro_utils.resources.compose
import dev.inmo.micro_utils.language_codes.IetfLang
import dev.inmo.micro_utils.language_codes.currentIetfLang
@androidx.compose.runtime.Composable
actual fun getCurrentLocale(): IetfLang? {
return currentIetfLang
}

View File

@@ -0,0 +1,10 @@
package dev.inmo.micro_utils.resources.compose
import androidx.compose.ui.text.intl.Locale
import dev.inmo.micro_utils.language_codes.IetfLang
import dev.inmo.micro_utils.language_codes.currentIetfLang
@androidx.compose.runtime.Composable
actual fun getCurrentLocale(): IetfLang? {
return currentIetfLang
}

View File

@@ -0,0 +1,9 @@
package dev.inmo.micro_utils.resources.compose
import dev.inmo.micro_utils.language_codes.IetfLang
import dev.inmo.micro_utils.language_codes.currentIetfLang
@androidx.compose.runtime.Composable
actual fun getCurrentLocale(): IetfLang? {
return currentIetfLang
}

View File

@@ -0,0 +1,9 @@
package dev.inmo.micro_utils.resources.compose
import dev.inmo.micro_utils.language_codes.IetfLang
import dev.inmo.micro_utils.language_codes.currentIetfLang
@androidx.compose.runtime.Composable
actual fun getCurrentLocale(): IetfLang? {
return currentIetfLang
}