diff --git a/mosogepsch/src/jsMain/kotlin/Main.kt b/mosogepsch/src/jsMain/kotlin/Main.kt
index 35cf2191e249745c21603adb11de8dfc0a4872e8..f698cd5d3678c205c108e3d88410df44e26acd0d 100644
--- a/mosogepsch/src/jsMain/kotlin/Main.kt
+++ b/mosogepsch/src/jsMain/kotlin/Main.kt
@@ -5,8 +5,10 @@ import app.softwork.bootstrapcompose.Color
 import components.*
 import kotlinx.browser.localStorage
 import kotlinx.browser.window
+import localization.English
 import localization.Hungarian
 import localization.LocalLang
+import localization.Localization
 import org.jetbrains.compose.web.css.*
 import org.jetbrains.compose.web.dom.*
 import org.jetbrains.compose.web.renderComposable
@@ -32,7 +34,7 @@ fun main() {
         ?: window.matchMedia("(prefers-color-scheme: dark)").matches
 
     var mosogepStyle by mutableStateOf(Style(dark))
-    val lang = Hungarian()
+    var lang by mutableStateOf<Localization>(Hungarian())
     renderComposable(rootElementId = "root") {
         Style(mosogepStyle)
         Style(CardStyle)
@@ -71,14 +73,30 @@ fun main() {
                         )
                         Text("MosógépSCH")
                     }
-                    switch(
-                        label = "Sötét téma",
-                        value = mosogepStyle.dark,
-                        onSet = {
-                            mosogepStyle = Style(it)
-                            localStorage["darkMode"] = "$it"
-                        }
-                    )
+                    Div(
+                        attrs = { classes(mosogepStyle.options) }
+                    ) {
+                        switch(
+                            label = "Sötét téma",
+                            value = mosogepStyle.dark,
+                            onSet = {
+                                mosogepStyle = Style(it)
+                                localStorage["darkMode"] = "$it"
+                            }
+                        )
+                        // todo make this a dropdown menu
+                        switch(
+                            label = "magyar",
+                            value = lang is Hungarian,
+                            onSet = {
+                                if (lang is Hungarian) {
+                                    lang = English()
+                                } else {
+                                    lang = Hungarian()
+                                }
+                            }
+                        )
+                    }
                 }
             }
             Main(attrs = {
diff --git a/mosogepsch/src/jsMain/kotlin/localization/English.kt b/mosogepsch/src/jsMain/kotlin/localization/English.kt
index c5bb88ad8e82af5b7eec468c3d7531c3a9b25453..01faadf3f0b0e9ffc1e6f4fc0fb00b746012c4cc 100644
--- a/mosogepsch/src/jsMain/kotlin/localization/English.kt
+++ b/mosogepsch/src/jsMain/kotlin/localization/English.kt
@@ -47,6 +47,6 @@ fun Localization.machineStatus(status: MachineStatus): String = when(status) {
     MachineStatus.NotAvailable -> notAvailable
 }
 
-val LocalLang = compositionLocalOf { Hungarian() }
+val LocalLang = compositionLocalOf<Localization> { Hungarian() }
 
 fun Int.padded() = this.toString().padStart(2, '0')
\ No newline at end of file
diff --git a/mosogepsch/src/jsMain/kotlin/styles/Style.kt b/mosogepsch/src/jsMain/kotlin/styles/Style.kt
index 44ff2444c5c293792bde8207e4d0f427022f3fdb..20199d2666cf580191e04eb28381e76d151132e6 100644
--- a/mosogepsch/src/jsMain/kotlin/styles/Style.kt
+++ b/mosogepsch/src/jsMain/kotlin/styles/Style.kt
@@ -42,6 +42,11 @@ class Style(val dark: Boolean = false): StyleSheet() {
         flexGrow(0)
         property("z-index", 2000)
     }
+    val options by style {
+        display(DisplayStyle.Flex)
+        flexDirection(FlexDirection.Row)
+        gap(1.em)
+    }
 }
 
 val LocalStyle = compositionLocalOf { Style() }
\ No newline at end of file