You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
63 lines
1.6 KiB
63 lines
1.6 KiB
import java.util.Locale |
|
|
|
plugins { |
|
kotlin("multiplatform") |
|
id("org.jetbrains.compose") |
|
} |
|
|
|
group = "app.group" |
|
|
|
kotlin { |
|
jvm("desktop") |
|
|
|
sourceSets { |
|
commonMain { |
|
dependencies { |
|
implementation(compose.runtime) |
|
implementation(compose.material) |
|
implementation(compose.components.resources) |
|
} |
|
} |
|
} |
|
} |
|
|
|
val generateResourceFiles = tasks.register("generateResourceFiles") { |
|
val resourcesFolder = project.file("src/commonMain/composeResources") |
|
val count = 1500 |
|
val numberOfLanguages = 20 |
|
val langs = Locale.getAvailableLocales() |
|
.map { it.language } |
|
.filter { it.count() == 2 } |
|
.sorted() |
|
.distinct() |
|
.take(numberOfLanguages) |
|
.toList() |
|
doLast { |
|
val txt = buildString { |
|
appendLine("<resources>") |
|
repeat(count) { |
|
appendLine(" <string name=\"str_${it}\">str_${it}</string>") |
|
} |
|
appendLine("</resources>") |
|
} |
|
langs.forEachIndexed { langIndex, lang -> |
|
val stringsFileName = if (langIndex == 0) "values/strings.xml" else "values-$lang/strings.xml" |
|
File(resourcesFolder, stringsFileName).apply { |
|
parentFile.mkdirs() |
|
writeText(txt) |
|
} |
|
} |
|
} |
|
doLast { |
|
repeat(count) { |
|
File(resourcesFolder, "drawable/icon_$it.xml").apply { |
|
parentFile.mkdirs() |
|
createNewFile() //empty file |
|
} |
|
} |
|
} |
|
} |
|
|
|
tasks.named("generateComposeResClass") { |
|
dependsOn(generateResourceFiles) |
|
}
|
|
|