Skip to content

ioki-mobility/kmp-lokalise-api

Repository files navigation

Lokalise API v2 unofficial KMP client library

Tests Maven Central Snapshot javadoc MIT

Inofficial Kotlin Multiplatform implementation of the Lokalise API targeting JVM, macOS/X64, macOS/Arm64, Mingw(Windows)/X64 and Linux/X64.

What?

As we needed an JVM implementation of the Lokalise API in one of our projects but didn't find one, we decided to build our own based on KMP.

Even though we focus on JVM the other targets has the same priority as the JVM implementation.

How?

All you need to do is to create an Lokalise API token to create a Lokalise instance:

val lokaliseClient = Lokalise("[API_TOKEN]")

Optional, you can set fullLoggingEnabled to true to enable logging for the HTTP communication.

Download

Add the repository

The project is hosted on Maven Central.

repositories {
    mavenCentral()
}

Add the dependency

dependencies {
    implementation("com.ioki:lokalise-api:<latest-version>")
}

Release

Continuous release

By default, each merge to main will create a new SNAPSHOT release. If you want to use the latest and greatest use the SNAPSHOT version of the library. But please be aware that they might contain bugs or behaviour changes.

To use the SNAPSHOT version you have to include the sonatype snapshot repository:

repositories {
    maven(url = "https://s01.oss.sonatype.org/content/repositories/snapshots/")
}

dependencies {
    implementation("com.ioki:lokalise-api:<latest-snapshot-version>-SNAPSHOT")
}

Proper release

  • Checkout main
  • Pull latest changes
  • Adjust version in build.gradle.kts to a non-SNAPSHOT version
  • Commit Prepare next release
  • Create a git tag that has the exact name as the version you just modified in the build.gradle.kts file.
  • Push the tag
  • Increase the version to the next minor version +-SNAPSHOT (e.g. 0.0.2-SNAPSHOT) in the build.gradle.kts file
  • Commit Prepare for next version
  • Push to main
  • Create a GitHub release

Note: The tag push will create a new release with the Publish workflow.