diff --git a/app/src/main/java/com/m57/hermescontrol/ui/common/HermesScaffold.kt b/app/src/main/java/com/m57/hermescontrol/ui/common/HermesScaffold.kt
index 5a463193..41c2565b 100644
--- a/app/src/main/java/com/m57/hermescontrol/ui/common/HermesScaffold.kt
+++ b/app/src/main/java/com/m57/hermescontrol/ui/common/HermesScaffold.kt
@@ -21,6 +21,8 @@ import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
import androidx.compose.ui.input.nestedscroll.nestedScroll
import androidx.compose.ui.platform.testTag
+import androidx.compose.ui.res.stringResource
+import com.m57.hermescontrol.R
/**
* Shared Scaffold wrapper that standardizes the TopAppBar.
@@ -69,7 +71,7 @@ fun HermesScaffold(
IconButton(onClick = onBack) {
Icon(
imageVector = Icons.AutoMirrored.Filled.ArrowBack,
- contentDescription = "Back",
+ contentDescription = stringResource(R.string.content_desc_back),
modifier = Modifier.testTag("back_button"),
)
}
@@ -79,7 +81,7 @@ fun HermesScaffold(
IconButton(onClick = onOpenDrawer) {
Icon(
imageVector = Icons.Filled.Menu,
- contentDescription = "Open navigation drawer",
+ contentDescription = stringResource(R.string.content_desc_open_drawer),
modifier = Modifier.testTag("menu_button"),
)
}
@@ -91,7 +93,7 @@ fun HermesScaffold(
IconButton(onClick = onRefresh) {
Icon(
imageVector = Icons.Filled.Refresh,
- contentDescription = "Refresh",
+ contentDescription = stringResource(R.string.content_desc_refresh),
modifier = Modifier.testTag("refresh_button"),
)
}
diff --git a/app/src/main/java/com/m57/hermescontrol/ui/common/SharedComponents.kt b/app/src/main/java/com/m57/hermescontrol/ui/common/SharedComponents.kt
index b481e37d..8f527582 100644
--- a/app/src/main/java/com/m57/hermescontrol/ui/common/SharedComponents.kt
+++ b/app/src/main/java/com/m57/hermescontrol/ui/common/SharedComponents.kt
@@ -31,8 +31,10 @@ import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.graphics.vector.ImageVector
+import androidx.compose.ui.res.stringResource
import androidx.compose.ui.text.font.FontWeight
import androidx.compose.ui.unit.dp
+import com.m57.hermescontrol.R
import com.m57.hermescontrol.theme.LocalHermesStatusColors
import com.m57.hermescontrol.theme.LocalSpacing
@@ -215,7 +217,7 @@ fun SearchBar(
IconButton(onClick = { onQueryChange("") }) {
Icon(
imageVector = Icons.Filled.Close,
- contentDescription = "Clear search",
+ contentDescription = stringResource(R.string.content_desc_clear_search),
)
}
}
diff --git a/app/src/main/java/com/m57/hermescontrol/ui/common/StateViews.kt b/app/src/main/java/com/m57/hermescontrol/ui/common/StateViews.kt
index 7f85f11b..1c310c83 100644
--- a/app/src/main/java/com/m57/hermescontrol/ui/common/StateViews.kt
+++ b/app/src/main/java/com/m57/hermescontrol/ui/common/StateViews.kt
@@ -23,8 +23,10 @@ import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.vector.ImageVector
import androidx.compose.ui.platform.testTag
+import androidx.compose.ui.res.stringResource
import androidx.compose.ui.text.style.TextAlign
import androidx.compose.ui.unit.dp
+import com.m57.hermescontrol.R
import com.m57.hermescontrol.theme.LocalSpacing
// Unified loading / error / empty / skeleton placeholders so every screen
@@ -94,7 +96,7 @@ fun ErrorState(
modifier = Modifier.size(18.dp),
)
Spacer(modifier = Modifier.size(spacing.sm))
- Text("Retry")
+ Text(stringResource(R.string.action_retry))
}
}
}
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index a7124074..fb78a1fc 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -13,4 +13,19 @@
Previous match
Next match
Close search
+
+
+ Retry
+ Cancel
+ OK
+ Delete
+
+
+ Back
+ Open navigation drawer
+ Refresh
+ Clear search
+
+
+ Unknown error
\ No newline at end of file