Newer
Older
Twilight / src / main / kotlin / net / taehui / twilight / system / LanguageSystem.kt
@Taehui Taehui on 6 Nov 876 bytes 2023-11-06 오후 7:15
package net.taehui.twilight.system

import com.fasterxml.jackson.core.type.TypeReference
import com.fasterxml.jackson.databind.ObjectMapper
import net.taehui.twilight.Logger

object LanguageSystem : Logger {
    private val languageStore = mutableMapOf<String, MutableMap<String, String>>()

    init {
        LanguageSystem::class.java.classLoader.getResourceAsStream("Language.json")?.use {
            languageStore.putAll(
                ObjectMapper().readValue(
                    it,
                    object : TypeReference<HashMap<String, MutableMap<String, String>>>() {})
            )
            logInfo("Loaded Language")
        }
    }

    fun getLanguage(language: String, target: String): String {
        return languageStore[target]?.get(language) ?: languageStore[target]?.get("en-US") ?: throw RuntimeException(
            target
        )
    }
}