Updated UI text to English and improved currency formatting
The UI strings in `ExpenseDetailScreen`, `DashboardScreen`, and `AccountSelectionScreen` have been translated from German to English.
Additionally, currency display logic has been updated to use `String.format("%.2f€", ...)` for consistent two-decimal formatting across the `ExpenseDetailScreen` and `DashboardScreen`.
This commit is contained in:
@@ -43,7 +43,7 @@ fun AccountSelectionScreen(accounts: List<Account>, onAccountClick: (Account) ->
|
|||||||
verticalArrangement = Arrangement.spacedBy(12.dp)
|
verticalArrangement = Arrangement.spacedBy(12.dp)
|
||||||
) {
|
) {
|
||||||
item {
|
item {
|
||||||
Text("Wähle einen Account", style = MaterialTheme.typography.headlineSmall)
|
Text("Choose an account", style = MaterialTheme.typography.headlineSmall)
|
||||||
}
|
}
|
||||||
|
|
||||||
items(accounts) { account ->
|
items(accounts) { account ->
|
||||||
@@ -64,7 +64,7 @@ fun AccountSelectionScreen(accounts: List<Account>, onAccountClick: (Account) ->
|
|||||||
onClick = onAddAccountClick,
|
onClick = onAddAccountClick,
|
||||||
modifier = Modifier.fillMaxWidth()
|
modifier = Modifier.fillMaxWidth()
|
||||||
) {
|
) {
|
||||||
Text("Anderen Account hinzufügen")
|
Text("Add account")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
package de.miaurizius.shap_planner.ui.screens
|
package de.miaurizius.shap_planner.ui.screens
|
||||||
|
|
||||||
|
import android.annotation.SuppressLint
|
||||||
import androidx.activity.compose.BackHandler
|
import androidx.activity.compose.BackHandler
|
||||||
import androidx.compose.foundation.background
|
import androidx.compose.foundation.background
|
||||||
import androidx.compose.foundation.clickable
|
import androidx.compose.foundation.clickable
|
||||||
@@ -83,29 +84,29 @@ fun DashboardScreen(
|
|||||||
) {
|
) {
|
||||||
Column {
|
Column {
|
||||||
Text(
|
Text(
|
||||||
text = "Hallo, ${account.name}!",
|
text = "Hello, ${account.name}!",
|
||||||
style = MaterialTheme.typography.headlineMedium
|
style = MaterialTheme.typography.headlineMedium
|
||||||
)
|
)
|
||||||
Text(
|
Text(
|
||||||
text = "WG: ${account.wgName}",
|
text = "Household: ${account.wgName}",
|
||||||
style = MaterialTheme.typography.bodyLarge,
|
style = MaterialTheme.typography.bodyLarge,
|
||||||
color = Color.Gray
|
color = Color.Gray
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
Button(onClick = onBack) {
|
Button(onClick = onBack) {
|
||||||
Text("Wechseln")
|
Text("Switch")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Spacer(modifier = Modifier.height(5.dp))
|
Spacer(modifier = Modifier.height(5.dp))
|
||||||
|
|
||||||
Button(onClick = onDelete) {
|
Button(onClick = onDelete) {
|
||||||
Text("Löschen")
|
Text("Delete")
|
||||||
}
|
}
|
||||||
|
|
||||||
Spacer(modifier = Modifier.height(10.dp))
|
Spacer(modifier = Modifier.height(10.dp))
|
||||||
|
|
||||||
Text("WG-Kosten", style = MaterialTheme.typography.titleLarge)
|
Text("Costs", style = MaterialTheme.typography.titleLarge)
|
||||||
Spacer(modifier = Modifier.height(8.dp))
|
Spacer(modifier = Modifier.height(8.dp))
|
||||||
|
|
||||||
if(expenseResource is Resource.Loading && expenseResource.data?.isEmpty() == true) {
|
if(expenseResource is Resource.Loading && expenseResource.data?.isEmpty() == true) {
|
||||||
@@ -113,7 +114,7 @@ fun DashboardScreen(
|
|||||||
}
|
}
|
||||||
|
|
||||||
if(expenseResource is Resource.Error) {
|
if(expenseResource is Resource.Error) {
|
||||||
Text("Fehler: ${expenseResource.message}", color = Color.Red)
|
Text("Error: ${expenseResource.message}", color = Color.Red)
|
||||||
}
|
}
|
||||||
|
|
||||||
LazyColumn(
|
LazyColumn(
|
||||||
@@ -142,6 +143,7 @@ fun DashboardScreen(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@SuppressLint("DefaultLocale")
|
||||||
@Composable
|
@Composable
|
||||||
fun ExpenseItem(expense: Expense, onClick: () -> Unit) {
|
fun ExpenseItem(expense: Expense, onClick: () -> Unit) {
|
||||||
Surface(modifier = Modifier
|
Surface(modifier = Modifier
|
||||||
@@ -151,7 +153,7 @@ fun ExpenseItem(expense: Expense, onClick: () -> Unit) {
|
|||||||
color = MaterialTheme.colorScheme.surface) {
|
color = MaterialTheme.colorScheme.surface) {
|
||||||
Row(modifier = Modifier.padding(16.dp), horizontalArrangement = Arrangement.SpaceBetween) {
|
Row(modifier = Modifier.padding(16.dp), horizontalArrangement = Arrangement.SpaceBetween) {
|
||||||
Text(text = expense.title, style = MaterialTheme.typography.bodyLarge)
|
Text(text = expense.title, style = MaterialTheme.typography.bodyLarge)
|
||||||
Text(text = expense.amount.toString()+"€", style = MaterialTheme.typography.bodyLarge, fontWeight = FontWeight.Bold)
|
Text(text = String.format("%.2f€", expense.amount / 100.0), style = MaterialTheme.typography.bodyLarge, fontWeight = FontWeight.Bold)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -36,6 +36,7 @@ import de.miaurizius.shap_planner.entities.Account
|
|||||||
import de.miaurizius.shap_planner.entities.Expense
|
import de.miaurizius.shap_planner.entities.Expense
|
||||||
import de.miaurizius.shap_planner.viewmodels.ExpenseDetailViewModel
|
import de.miaurizius.shap_planner.viewmodels.ExpenseDetailViewModel
|
||||||
|
|
||||||
|
@SuppressLint("DefaultLocale")
|
||||||
@OptIn(ExperimentalMaterial3Api::class)
|
@OptIn(ExperimentalMaterial3Api::class)
|
||||||
@Composable
|
@Composable
|
||||||
fun ExpenseDetailScreen(
|
fun ExpenseDetailScreen(
|
||||||
@@ -55,14 +56,14 @@ fun ExpenseDetailScreen(
|
|||||||
TopAppBar(
|
TopAppBar(
|
||||||
title = { Text(expense.title) },
|
title = { Text(expense.title) },
|
||||||
navigationIcon = { IconButton(onClick = onBack) {
|
navigationIcon = { IconButton(onClick = onBack) {
|
||||||
Icon(Icons.AutoMirrored.Filled.ArrowBack, "Zurück")
|
Icon(Icons.AutoMirrored.Filled.ArrowBack, "Back")
|
||||||
} }
|
} }
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
) { padding ->
|
) { padding ->
|
||||||
Column(modifier = Modifier.padding(padding).padding(16.dp)) {
|
Column(modifier = Modifier.padding(padding).padding(16.dp)) {
|
||||||
Text(
|
Text(
|
||||||
text = "${expense.amount / 100.0}€",
|
text = String.format("%.2f€", expense.amount / 100.0),
|
||||||
style = MaterialTheme.typography.displayMedium,
|
style = MaterialTheme.typography.displayMedium,
|
||||||
fontWeight = FontWeight.Bold,
|
fontWeight = FontWeight.Bold,
|
||||||
color = MaterialTheme.colorScheme.primary
|
color = MaterialTheme.colorScheme.primary
|
||||||
@@ -73,12 +74,12 @@ fun ExpenseDetailScreen(
|
|||||||
HorizontalDivider(Modifier, DividerDefaults.Thickness, DividerDefaults.color)
|
HorizontalDivider(Modifier, DividerDefaults.Thickness, DividerDefaults.color)
|
||||||
Spacer(modifier = Modifier.height(16.dp))
|
Spacer(modifier = Modifier.height(16.dp))
|
||||||
|
|
||||||
Text("Kostenaufteilung", style = MaterialTheme.typography.titleLarge)
|
Text("Cost Allocation", style = MaterialTheme.typography.titleLarge)
|
||||||
Spacer(modifier = Modifier.height(8.dp))
|
Spacer(modifier = Modifier.height(8.dp))
|
||||||
|
|
||||||
LazyColumn(verticalArrangement = Arrangement.spacedBy(8.dp)) {
|
LazyColumn(verticalArrangement = Arrangement.spacedBy(8.dp)) {
|
||||||
items(shares) { item ->
|
items(shares) { item ->
|
||||||
ShareItem(item.user?.name ?: "Unbekannter Nutzer", item.share.share_cents)
|
ShareItem(item.user?.name ?: "Unknown User", item.share.share_cents)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user