Skip to content

Commit

Permalink
feat: the languages menu now displays the name in the target language…
Browse files Browse the repository at this point in the history
…, related to #1170 and #1172
  • Loading branch information
AlmasB committed Jul 20, 2022
1 parent c4b44da commit afdbaf6
Show file tree
Hide file tree
Showing 2 changed files with 27 additions and 5 deletions.
21 changes: 16 additions & 5 deletions fxgl-core/src/main/kotlin/com/almasb/fxgl/localization/Language.kt
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,18 @@ package com.almasb.fxgl.localization
/**
* @author Almas Baimagambetov ([email protected])
*/
class Language(name: String) {
class Language
@JvmOverloads constructor(

/**
* In English.
*/
name: String,

/**
* In the target language.
*/
val nativeName: String = name) {

val name = name.uppercase()

Expand All @@ -30,12 +41,12 @@ class Language(name: String) {
@JvmField val ESTONIAN = Language("ESTONIAN")
@JvmField val FILIPINO = Language("FILIPINO")
@JvmField val FINNISH = Language("FINNISH")
@JvmField val FRENCH = Language("FRENCH")
@JvmField val GERMAN = Language("GERMAN")
@JvmField val FRENCH = Language("FRENCH", "Français")
@JvmField val GERMAN = Language("GERMAN", "Deutsch")
@JvmField val GREEK = Language("GREEK")
@JvmField val HEBREW = Language("HEBREW")
@JvmField val HINDI = Language("HINDI")
@JvmField val HUNGARIAN = Language("HUNGARIAN")
@JvmField val HUNGARIAN = Language("HUNGARIAN", "Magyar")
@JvmField val INDONESIAN = Language("INDONESIAN")
@JvmField val ITALIAN = Language("ITALIAN")
@JvmField val JAPANESE = Language("JAPANESE")
Expand All @@ -44,7 +55,7 @@ class Language(name: String) {
@JvmField val NORWEGIAN = Language("NORWEGIAN")
@JvmField val PORTUGUESE = Language("PORTUGUESE")
@JvmField val ROMANIAN = Language("ROMANIAN")
@JvmField val RUSSIAN = Language("RUSSIAN")
@JvmField val RUSSIAN = Language("RUSSIAN", "Русский")
@JvmField val SLOVAK = Language("SLOVAK")
@JvmField val SPANISH = Language("SPANISH")
@JvmField val SWEDISH = Language("SWEDISH")
Expand Down
11 changes: 11 additions & 0 deletions fxgl/src/main/kotlin/com/almasb/fxgl/app/scene/FXGLDefaultMenu.kt
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ import com.almasb.fxgl.input.InputModifier
import com.almasb.fxgl.input.Trigger
import com.almasb.fxgl.input.UserAction
import com.almasb.fxgl.input.view.TriggerView
import com.almasb.fxgl.localization.Language
import com.almasb.fxgl.logging.Logger
import com.almasb.fxgl.particle.ParticleEmitters
import com.almasb.fxgl.particle.ParticleSystem
Expand All @@ -46,6 +47,7 @@ import javafx.scene.paint.*
import javafx.scene.shape.Polygon
import javafx.scene.shape.Rectangle
import javafx.util.Duration
import javafx.util.StringConverter
import java.time.format.DateTimeFormatter
import java.util.*
import java.util.function.Consumer
Expand Down Expand Up @@ -661,6 +663,15 @@ open class FXGLDefaultMenu(type: MenuType) : FXGLMenu(type) {

val languageBox = getUIFactoryService().newChoiceBox(FXCollections.observableArrayList(getSettings().supportedLanguages))
languageBox.value = getSettings().language.value
languageBox.converter = object : StringConverter<Language>() {
override fun toString(`object`: Language): String {
return `object`.nativeName
}

override fun fromString(string: String): Language {
return getSettings().supportedLanguages.find { it.nativeName == string } ?: Language.NONE
}
}

getSettings().language.bindBidirectional(languageBox.valueProperty())

Expand Down

0 comments on commit afdbaf6

Please sign in to comment.