Add translations, fix maximisation

This commit is contained in:
Christian Basler
2025-05-01 21:42:41 +02:00
parent f8d7702fca
commit b05f971ec1
4 changed files with 118 additions and 25 deletions

View File

@@ -0,0 +1,89 @@
<resources>
<string name="app_name">NERä</string>
<string name="app_name_full">Noch so ein Einstein Rätsel</string>
<string name="solved_congrats">Gratulation!</string>
<string name="solved_time">Du hast das Rätsel in %1$s gelöst</string>
<string name="restart">Von Anfang beginnen</string>
<string name="use_light_mode">Heller Modus</string>
<string name="use_dark_mode">Dunkler Modus</string>
<string name="window_minimize">Fenster minimieren</string>
<string name="window_maximize">Fenster maximieren</string>
<string name="window_close">Fenster schließen</string>
<!-- Clues -->
<string name="clue_next_to">%1$s ist neben %2$s</string>
<string name="clue_left_of">%1$s ist links von %2$s</string>
<string name="clue_triplet">%2$s ist zwischen den Nachbarn %1$s und %3$s auf beiden Seiten</string>
<string name="clue_same_column">%1$s und %2$s sind in der gleichen Spalte</string>
<string name="clue_fixed_position">%1$s auf Position %2$i</string>
<!-- Animals -->
<string name="zebra">Zebra</string>
<string name="octopus">Oktopus</string>
<string name="goat">Ziege</string>
<string name="sloth">Faultier</string>
<string name="dog">Hund</string>
<string name="snail">Schnecke</string>
<string name="ant">Ameise</string>
<!-- Desserts -->
<string name="ice_cream">Eis</string>
<string name="doughnut">Donut</string>
<string name="cookie">Keks</string>
<string name="cake">Torte</string>
<string name="cupcake">Cupcake</string>
<string name="pie">Kuchen</string>
<string name="chocolate">Schokolade</string>
<string name="lollipop">Lollipop</string>
<string name="custard">Vanillepudding</string>
<!-- Drinks -->
<string name="milk">Milch</string>
<string name="wine">Wein</string>
<string name="cocktail">Cocktail</string>
<string name="coffee">Kaffee</string>
<string name="tea">Tee</string>
<string name="beer">Bier</string>
<string name="beverage">Süssgetränk</string>
<!-- Fruits -->
<string name="banana">Banane</string>
<string name="cherries">Kirsche</string>
<string name="grapes">Trauben</string>
<string name="kiwi">Kiwi</string>
<string name="lemon">Zitrone</string>
<string name="mango">Mango</string>
<string name="pear">Birne</string>
<string name="pineapple">Ananas</string>
<string name="strawberry">Erdbeere</string>
<string name="watermelon">Wassermelone</string>
<!-- Nationalities -->
<string name="canadian">Kanada</string>
<string name="japanese">Japan</string>
<string name="norwegian">Norwegen</string>
<string name="spanish">Spanien</string>
<string name="swedish">Schweden</string>
<string name="swiss">Schweiz</string>
<string name="british">Großbritannien</string>
<string name="ukrainian">Ukraine</string>
<!-- Professions -->
<string name="astronaut">Astronauty</string>
<string name="health_worker">Pflegy</string>
<string name="farmer">Bauy</string>
<string name="rock_star">Rock Star</string>
<string name="scientist">Wissenschaftly</string>
<string name="software_dev">Softwareentwickly</string>
<string name="firefighter">Feuerwehrperson</string>
<string name="teacher">Lehry</string>
<!-- Transportation -->
<string name="bicycle">Fahrrad</string>
<string name="motor_scooter">Roller</string>
<string name="skateboard">Rollbrett</string>
<string name="taxi">Taxi</string>
<string name="locomotive">Lok</string>
<string name="tram_car">Tram</string>
<string name="bus">Bus</string>
</resources>

View File

@@ -4,6 +4,18 @@
<string name="solved_congrats">Congratulations!</string>
<string name="solved_time">You solved the puzzle in %1$s</string>
<string name="restart">Restart</string>
<string name="use_light_mode">Use light mode</string>
<string name="use_dark_mode">Use dark mode</string>
<string name="window_minimize">Minimize window</string>
<string name="window_maximize">Maximize window</string>
<string name="window_close">Close window</string>
<!-- Clues -->
<string name="clue_next_to">%1$s is next to %2$s</string>
<string name="clue_left_of">%1$s is left of %2$s</string>
<string name="clue_triplet">%2$s is between the neighbours %1$s and %3$s to both sides</string>
<string name="clue_same_column">%1$s and %2$s are in the same column</string>
<string name="clue_fixed_position">%1$s at position %2$i</string>
<!-- Animals -->
<string name="zebra">Zebra</string>
@@ -50,19 +62,19 @@
<string name="canadian">Canadian</string>
<string name="japanese">Japanese</string>
<string name="norwegian">Norwegian</string>
<string name="spanish">Spanish</string>
<string name="swedish">Swedish</string>
<string name="spanish">Spaniard</string>
<string name="swedish">Swede</string>
<string name="swiss">Swiss</string>
<string name="british">British</string>
<string name="ukrainian">Ukrainian</string>
<!-- Professions -->
<string name="astronaut">Astronaut</string>
<string name="health_worker">Health_worker</string>
<string name="health_worker">Health Worker</string>
<string name="farmer">Farmer</string>
<string name="rock_star">Rock_star</string>
<string name="rock_star">Rock Star</string>
<string name="scientist">Scientist</string>
<string name="software_dev">Software_dev</string>
<string name="software_dev">Software Developer</string>
<string name="firefighter">Firefighter</string>
<string name="teacher">Teacher</string>

View File

@@ -16,18 +16,12 @@ import androidx.compose.material3.SwitchDefaults
import androidx.compose.material3.Text
import androidx.compose.material3.TopAppBar
import androidx.compose.runtime.Composable
import androidx.compose.runtime.LaunchedEffect
import androidx.compose.runtime.getValue
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember
import androidx.compose.runtime.setValue
import androidx.compose.ui.Modifier
import androidx.compose.ui.draw.scale
import androidx.compose.ui.unit.dp
import androidx.compose.ui.window.WindowPlacement
import androidx.compose.ui.window.WindowScope
import androidx.compose.ui.window.WindowState
import ch.dissem.yaep.domain.Game
import ch.dissem.yaep.ui.common.theme.AppTheme
import org.jetbrains.compose.resources.painterResource
import org.jetbrains.compose.resources.stringResource
@@ -36,6 +30,8 @@ import yaep.commonui.generated.resources.app_name_full
import yaep.commonui.generated.resources.moon
import yaep.commonui.generated.resources.restart
import yaep.commonui.generated.resources.sun
import yaep.commonui.generated.resources.use_dark_mode
import yaep.commonui.generated.resources.use_light_mode
import yaep.commonui.generated.resources.window_close
import yaep.commonui.generated.resources.window_maximize
import yaep.commonui.generated.resources.window_minimize
@@ -70,15 +66,7 @@ fun AppBar(
onCloseRequest: () -> Unit,
onRestart: () -> Unit,
windowState: WindowState,
game: Game,
) {
var gameSolved by remember { mutableStateOf(false) }
LaunchedEffect(game) {
game.onSolved {
gameSolved = true
}
}
TopAppBar(
navigationIcon = {
Image(
@@ -111,7 +99,13 @@ fun AppBar(
CRes.drawable.moon
}
),
contentDescription = null,
contentDescription = stringResource(
if (useDarkMode) {
CRes.string.use_light_mode
} else {
CRes.string.use_dark_mode
}
),
modifier = Modifier.size(SwitchDefaults.IconSize),
)
}
@@ -122,12 +116,11 @@ fun AppBar(
) {
Icon(
painter = painterResource(CRes.drawable.window_minimize),
contentDescription = null,
contentDescription = stringResource(CRes.string.window_minimize),
modifier = Modifier.size(SwitchDefaults.IconSize),
)
}
IconButton(
enabled = !gameSolved,
onClick = {
windowState.placement =
if (windowState.placement == WindowPlacement.Maximized)
@@ -136,7 +129,7 @@ fun AppBar(
) {
Icon(
painter = painterResource(CRes.drawable.window_maximize),
contentDescription = null,
contentDescription = stringResource(CRes.string.window_maximize),
modifier = Modifier.size(SwitchDefaults.IconSize),
)
}
@@ -145,7 +138,7 @@ fun AppBar(
) {
Icon(
painter = painterResource(CRes.drawable.window_close),
contentDescription = null,
contentDescription = stringResource(CRes.string.window_close),
modifier = Modifier.size(SwitchDefaults.IconSize),
)
}

View File

@@ -62,7 +62,6 @@ fun main() = application {
resetCluesBeacon = Any()
},
windowState = windowState,
game = game,
)
}
) {