@@ -8,6 +8,7 @@ import net.kyori.adventure.text.Component
88import net.kyori.adventure.text.TextReplacementConfig
99import net.kyori.adventure.text.TranslatableComponent
1010import net.kyori.adventure.text.VirtualComponent
11+ import net.kyori.adventure.text.serializer.plain.PlainTextComponentSerializer
1112import net.kyori.adventure.translation.GlobalTranslator
1213import net.kyori.adventure.translation.Translator
1314import org.apache.commons.lang3.LocaleUtils
@@ -37,7 +38,14 @@ class AddonTranslator(private val addon: PylonAddon) : Translator {
3738 override fun translate (key : String , locale : Locale ): MessageFormat ? = null
3839
3940 override fun translate (component : TranslatableComponent , locale : Locale ): Component ? {
40- var translated = getTranslation(component, locale) ? : return null
41+ var translated = getTranslation(component, locale).let {
42+ if (it == null ) {
43+ val fallback = component.fallback()
44+ if (fallback != null ) {
45+ getTranslation(fallback, locale) ? : return null
46+ } else return null
47+ } else it
48+ }
4149 for (arg in component.arguments()) {
4250 val component = arg.asComponent()
4351 if (component !is VirtualComponent ) continue
@@ -75,7 +83,7 @@ class AddonTranslator(private val addon: PylonAddon) : Translator {
7583 }
7684
7785 fun translationKeyExists (key : String , locale : Locale ): Boolean
78- = getTranslation(key, locale) != null
86+ = getTranslation(key, locale) != null
7987
8088 companion object : Listener {
8189
0 commit comments