diff --git a/src/main/kotlin/Translate.kt b/src/main/kotlin/Translate.kt index 504886f..152d33f 100644 --- a/src/main/kotlin/Translate.kt +++ b/src/main/kotlin/Translate.kt @@ -6,7 +6,6 @@ import io.github.brenoepics.utils.FileManager.Companion.readIni import org.slf4j.LoggerFactory import utils.TranslateUtils - /** * Main function to start the translation process. * Reads the ini file and starts the translation process. @@ -20,6 +19,5 @@ fun main() { val root = LoggerFactory.getLogger(Logger.ROOT_LOGGER_NAME) as Logger root.level = config.loggerLevel TranslateUtils.translateJSON(config, HashMap()) - } diff --git a/src/main/kotlin/translation/Translator.kt b/src/main/kotlin/translation/Translator.kt index 96cd78f..e5d56fd 100644 --- a/src/main/kotlin/translation/Translator.kt +++ b/src/main/kotlin/translation/Translator.kt @@ -1,10 +1,7 @@ package io.github.brenoepics.translation -import java.util.concurrent.CompletableFuture - interface Translator { - - fun getCache(): HashMap> + fun getLanguageCache(langCode: String): java.util.HashMap fun addToCache(lang: String, translations: HashMap) fun translate( texts: Map, diff --git a/src/main/kotlin/utils/TranslateUtils.kt b/src/main/kotlin/utils/TranslateUtils.kt index 919a180..404f1d0 100644 --- a/src/main/kotlin/utils/TranslateUtils.kt +++ b/src/main/kotlin/utils/TranslateUtils.kt @@ -6,7 +6,6 @@ import io.github.brenoepics.utils.FileManager import io.github.brenoepics.utils.FileManager.Companion.getJsonTexts import io.github.brenoepics.utils.FileManager.Companion.readJsonFile import io.github.brenoepics.utils.FileManager.Companion.writeTranslation -import org.json.JSONObject import org.slf4j.Logger import org.slf4j.LoggerFactory import java.nio.file.Path @@ -27,36 +26,47 @@ class TranslateUtils { toTranslate: HashMap, ) { val dirFiles = FileManager.readPath(config.sourcePath, config.recursiveInput) - val filesData: HashMap = HashMap() + val filesData: HashMap = HashMap() log.info("Reading files...") - dirFiles.forEach { + readFiles(dirFiles, toTranslate, filesData) + config.api?.translate(toTranslate, config.from, config.to) + config.api?.let { updateFileData(config, dirFiles, filesData, it) } + log.info("Translation finished!") + config.api?.dispose() + } + + private fun readFiles( + dirFiles: List, + toTranslate: HashMap, + filesData: HashMap + ) { + for (it in dirFiles) { val file = readJsonFile(it) toTranslate.putAll(getJsonTexts(file)) filesData[it] = file log.debug("Read file: {}", it) } - config.api?.translate(toTranslate, config.from, config.to) - config.api?.let { updateFileData(config, dirFiles, filesData, it) } - log.info("Translation finished!") - config.api?.dispose() } private fun updateFileData( - config: TranslationConfig, dirFiles: List, filesData: HashMap, api: Translator + config: TranslationConfig, dirFiles: List, filesData: HashMap, api: Translator ) { log.info("Generating translated files...") dirFiles.forEach { - val jsonObject = filesData[it] - if (jsonObject != null) { - for ((lang, translations) in api.getCache()) translations.writeTranslation( - config.outputTemplate, - config.sourcePath, - jsonObject, - config.targetPath, - it, - lang, - config.indentationLevel - ) + val json = filesData[it] + if (json != null) { + for (lang in config.to) { + val translations = api.getLanguageCache(lang) + translations.writeTranslation( + config.outputTemplate, + config.sourcePath, + json, + config.targetPath, + it, + lang, + config.indentationLevel + ) + } } } }