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_congrats">Congratulations!</string>
<string name="solved_time">You solved the puzzle in %1$s</string> <string name="solved_time">You solved the puzzle in %1$s</string>
<string name="restart">Restart</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 --> <!-- Animals -->
<string name="zebra">Zebra</string> <string name="zebra">Zebra</string>
@@ -50,19 +62,19 @@
<string name="canadian">Canadian</string> <string name="canadian">Canadian</string>
<string name="japanese">Japanese</string> <string name="japanese">Japanese</string>
<string name="norwegian">Norwegian</string> <string name="norwegian">Norwegian</string>
<string name="spanish">Spanish</string> <string name="spanish">Spaniard</string>
<string name="swedish">Swedish</string> <string name="swedish">Swede</string>
<string name="swiss">Swiss</string> <string name="swiss">Swiss</string>
<string name="british">British</string> <string name="british">British</string>
<string name="ukrainian">Ukrainian</string> <string name="ukrainian">Ukrainian</string>
<!-- Professions --> <!-- Professions -->
<string name="astronaut">Astronaut</string> <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="farmer">Farmer</string>
<string name="rock_star">Rock_star</string> <string name="rock_star">Rock Star</string>
<string name="scientist">Scientist</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="firefighter">Firefighter</string>
<string name="teacher">Teacher</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.Text
import androidx.compose.material3.TopAppBar import androidx.compose.material3.TopAppBar
import androidx.compose.runtime.Composable 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.Modifier
import androidx.compose.ui.draw.scale import androidx.compose.ui.draw.scale
import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.dp
import androidx.compose.ui.window.WindowPlacement import androidx.compose.ui.window.WindowPlacement
import androidx.compose.ui.window.WindowScope import androidx.compose.ui.window.WindowScope
import androidx.compose.ui.window.WindowState import androidx.compose.ui.window.WindowState
import ch.dissem.yaep.domain.Game
import ch.dissem.yaep.ui.common.theme.AppTheme import ch.dissem.yaep.ui.common.theme.AppTheme
import org.jetbrains.compose.resources.painterResource import org.jetbrains.compose.resources.painterResource
import org.jetbrains.compose.resources.stringResource 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.moon
import yaep.commonui.generated.resources.restart import yaep.commonui.generated.resources.restart
import yaep.commonui.generated.resources.sun 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_close
import yaep.commonui.generated.resources.window_maximize import yaep.commonui.generated.resources.window_maximize
import yaep.commonui.generated.resources.window_minimize import yaep.commonui.generated.resources.window_minimize
@@ -70,15 +66,7 @@ fun AppBar(
onCloseRequest: () -> Unit, onCloseRequest: () -> Unit,
onRestart: () -> Unit, onRestart: () -> Unit,
windowState: WindowState, windowState: WindowState,
game: Game,
) { ) {
var gameSolved by remember { mutableStateOf(false) }
LaunchedEffect(game) {
game.onSolved {
gameSolved = true
}
}
TopAppBar( TopAppBar(
navigationIcon = { navigationIcon = {
Image( Image(
@@ -111,7 +99,13 @@ fun AppBar(
CRes.drawable.moon 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), modifier = Modifier.size(SwitchDefaults.IconSize),
) )
} }
@@ -122,12 +116,11 @@ fun AppBar(
) { ) {
Icon( Icon(
painter = painterResource(CRes.drawable.window_minimize), painter = painterResource(CRes.drawable.window_minimize),
contentDescription = null, contentDescription = stringResource(CRes.string.window_minimize),
modifier = Modifier.size(SwitchDefaults.IconSize), modifier = Modifier.size(SwitchDefaults.IconSize),
) )
} }
IconButton( IconButton(
enabled = !gameSolved,
onClick = { onClick = {
windowState.placement = windowState.placement =
if (windowState.placement == WindowPlacement.Maximized) if (windowState.placement == WindowPlacement.Maximized)
@@ -136,7 +129,7 @@ fun AppBar(
) { ) {
Icon( Icon(
painter = painterResource(CRes.drawable.window_maximize), painter = painterResource(CRes.drawable.window_maximize),
contentDescription = null, contentDescription = stringResource(CRes.string.window_maximize),
modifier = Modifier.size(SwitchDefaults.IconSize), modifier = Modifier.size(SwitchDefaults.IconSize),
) )
} }
@@ -145,7 +138,7 @@ fun AppBar(
) { ) {
Icon( Icon(
painter = painterResource(CRes.drawable.window_close), painter = painterResource(CRes.drawable.window_close),
contentDescription = null, contentDescription = stringResource(CRes.string.window_close),
modifier = Modifier.size(SwitchDefaults.IconSize), modifier = Modifier.size(SwitchDefaults.IconSize),
) )
} }

View File

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