1
0
mirror of https://github.com/oliexdev/openScale.git synced 2025-08-21 16:02:04 +02:00

Translate time range filter options

This commit is contained in:
oliexdev
2025-08-15 08:31:29 +02:00
parent 53d05505c6
commit b2fc2a1570
4 changed files with 21 additions and 11 deletions

View File

@@ -24,9 +24,7 @@ import java.util.Locale
enum class SupportedLanguage(val code: String, val nativeDisplayName: String) {
ENGLISH("en", "English"),
GERMAN("de", "Deutsch"),
SPANISH("es", "Español"),
FRENCH("fr", "Français");
GERMAN("de", "Deutsch");
fun toLocale(): Locale {
return Locale.Builder().setLanguage(code).build()
@@ -202,9 +200,13 @@ enum class Trend {
UP, DOWN, NONE, NOT_APPLICABLE
}
enum class TimeRangeFilter(val displayName: String) {
ALL_DAYS("Alle Tage"),
LAST_7_DAYS("Letzte 7 Tage"),
LAST_30_DAYS("Letzte 30 Tage"),
LAST_365_DAYS("Letzte 365 Tage")
enum class TimeRangeFilter(@StringRes val displayNameResId: Int) {
ALL_DAYS(R.string.time_range_all_days),
LAST_7_DAYS(R.string.time_range_last_7_days),
LAST_30_DAYS(R.string.time_range_last_30_days),
LAST_365_DAYS(R.string.time_range_last_365_days);
fun getDisplayName(context: android.content.Context): String {
return context.getString(displayNameResId)
}
}

View File

@@ -271,7 +271,7 @@ fun LineChart(
Text(
text = stringResource(
R.string.line_chart_filter_title_template,
uiSelectedTimeRange.displayName,
uiSelectedTimeRange.getDisplayName(LocalContext.current),
measurementsWithValues.size
),
style = MaterialTheme.typography.bodyMedium,
@@ -612,14 +612,14 @@ fun provideFilterTopBarAction(
// Time Range Options
TimeRangeFilter.entries.forEach { timeRange ->
DropdownMenuItem(
text = { Text(timeRange.displayName) },
text = { Text(timeRange.getDisplayName(LocalContext.current)) },
leadingIcon = {
if (activeTimeRange == timeRange) {
Icon(
imageVector = Icons.Default.Check,
contentDescription = stringResource(
R.string.content_description_time_range_selected,
timeRange.displayName // Same i18n consideration as above
timeRange.getDisplayName(LocalContext.current) // Same i18n consideration as above
)
)
} else {

View File

@@ -242,6 +242,10 @@
<string name="content_description_measurement_filter_visible">Messfilter ist sichtbar</string>
<string name="content_description_measurement_filter_hidden">Messfilter ist ausgeblendet</string>
<string name="line_chart_filter_title_template">%1$s (%2$d Einträge)</string> <!-- Beispiel: "Letzte 30 Tage (15 Einträge)" -->
<string name="time_range_all_days">Alle Tage</string>
<string name="time_range_last_7_days">Letzte 7 Tage</string>
<string name="time_range_last_30_days">Letzte 30 Tage</string>
<string name="time_range_last_365_days">Letzte 365 Tage</string>
<string name="line_chart_no_plottable_types">Keine darstellbaren Diagrammtypen verfügbar.</string>
<string name="line_chart_no_data_to_display">Keine Daten zum Anzeigen.</string>
<string name="line_chart_no_data_for_type_in_range">Keine Daten für %1$s im ausgewählten Bereich.</string>

View File

@@ -244,6 +244,10 @@
<string name="content_description_measurement_filter_visible">Measurement filter is visible</string>
<string name="content_description_measurement_filter_hidden">Measurement filter is hidden</string>
<string name="line_chart_filter_title_template">%1$s (%2$d entries)</string> <!-- Example: "Last 30 days (15 entries)" -->
<string name="time_range_all_days">All Days</string>
<string name="time_range_last_7_days">Last 7 Days</string>
<string name="time_range_last_30_days">Last 30 Days</string>
<string name="time_range_last_365_days">Last 365 Days</string>
<string name="line_chart_no_plottable_types">No plottable chart types available.</string>
<string name="line_chart_no_data_to_display">No data to display.</string>
<string name="line_chart_no_data_for_type_in_range">No data for %1$s in the selected range.</string>