Skip to content

Resources

Package: dev.inmo:micro_utils.resources

This package aimed to make some multiplatform support for resources of your application. As for now, there is only support for strings. Sample:

object Translations {
    val someVariable = buildStringResource(
        "Sample default string"
    ) {
        IetfLanguageCode.German variant lazy "Beispiel für eine Standardzeichenkette"
    }
}

In this case, you will be able to use it with next logic:

Translation.someVariable.translation(IetfLanguageCode.French) // "Sample default string" as default one
Translation.someVariable.translation(IetfLanguageCode.German) // "Beispiel für eine Standardzeichenkette" as available variant
Translation.someVariable.translation(IetfLanguageCode.German.DE) // "Beispiel für eine Standardzeichenkette" as available parent variant

Additional opportunities on Android platform

On Android you may use Configuration (as well as Resources or Context) to get translation for current locale. For example:

val context: Context = // context retrieving

context.translation(Translation.someVariable)

Additional opportunities on JVM platform

On JVM platform you usually may use Locale.getDefault() to get Locale object and pass it to translation extension:

Translation.someVariable.translation(Locale.getDefault())
Translation.someVariable.translation() // Locale.getDefault() hidden