Skip to content
Snippets Groups Projects
Unverified Commit e7161eff authored by harambasicluka's avatar harambasicluka Committed by GitHub
Browse files

Feature: String plurals (#157)

* plurals to string.xml

* added plural strings

* adapted formatters
parent be285866
No related branches found
No related tags found
No related merge requests found
......@@ -113,15 +113,19 @@ fun formatRiskSavedRisk(riskLevelScore: Int?, savedRiskLevelScore: Int?): String
*/
fun formatRiskContact(riskLevelScore: Int?, matchedKeysCount: Int?): String {
val appContext = CoronaWarnApplication.getAppContext()
val keysArg = matchedKeysCount?.toString()
val resources = appContext.resources
val contacts = matchedKeysCount ?: 0
return when (riskLevelScore) {
RiskLevelConstants.INCREASED_RISK,
RiskLevelConstants.LOW_LEVEL_RISK -> {
if (matchedKeysCount != null && matchedKeysCount != 0) {
appContext.getString(R.string.risk_card_body_contact_value)
.format(keysArg)
} else {
if (matchedKeysCount == 0) {
appContext.getString(R.string.risk_card_body_contact)
} else {
resources.getQuantityString(
R.plurals.risk_card_body_contact_value,
contacts,
contacts
)
}
}
else -> ""
......@@ -139,16 +143,14 @@ fun formatRiskContact(riskLevelScore: Int?, matchedKeysCount: Int?): String {
*/
fun formatRiskContactLast(riskLevelScore: Int?, daysSinceLastExposure: Int?): String {
val appContext = CoronaWarnApplication.getAppContext()
val daysArg = daysSinceLastExposure.toString()
val resources = appContext.resources
val days = daysSinceLastExposure ?: 0
return if (riskLevelScore == RiskLevelConstants.INCREASED_RISK) {
if (daysSinceLastExposure != null && daysArg != "") {
appContext.getString(R.string.risk_card_increased_risk_body_contact_last)
.format(daysArg)
} else {
appContext.getString(R.string.risk_card_increased_risk_body_contact_last)
.format("0")
}
resources.getQuantityString(
R.plurals.risk_card_increased_risk_body_contact_last,
days,
days
)
} else {
""
}
......@@ -297,13 +299,15 @@ fun formatRiskDetailsRiskLevelSubtitle(riskLevelScore: Int?): String {
*/
fun formatRiskDetailsRiskLevelBody(riskLevelScore: Int?, daysSinceLastExposure: Int?): String {
val appContext = CoronaWarnApplication.getAppContext()
val daysArg = daysSinceLastExposure.toString()
val resources = appContext.resources
val days = daysSinceLastExposure ?: 0
return when (riskLevelScore) {
RiskLevelConstants.INCREASED_RISK -> {
appContext.getString(R.string.risk_details_information_body_increased_risk)
.format(daysArg)
}
RiskLevelConstants.INCREASED_RISK ->
resources.getQuantityString(
R.plurals.risk_details_information_body_increased_risk,
days,
days
)
RiskLevelConstants.UNKNOWN_RISK_OUTDATED_RESULTS ->
appContext.getString(R.string.risk_details_information_body_outdated_risk)
RiskLevelConstants.LOW_LEVEL_RISK ->
......
......@@ -111,13 +111,13 @@ fun formatNotificationsDescription(notifications: Boolean): String = formatText(
*/
fun formatTracingStatusBody(tracing: Boolean, activeTracingDaysInRetentionPeriod: Long): String {
val appContext = CoronaWarnApplication.getAppContext()
val daysArg = activeTracingDaysInRetentionPeriod.toString()
val resources = appContext.resources
val days = activeTracingDaysInRetentionPeriod.toInt()
return if (tracing) {
appContext.getString(R.string.settings_tracing_status_body_active)
.format(daysArg)
resources.getQuantityString(R.plurals.settings_tracing_status_body_active, days, days)
} else {
appContext.getString(R.string.settings_tracing_status_body_inactive)
.format(daysArg)
.format(days)
}
}
......
......@@ -4,6 +4,7 @@
Preference Keys
######################################
TODO: Check what is needed -->
<!-- NOTR -->
<string name="preference_name">
<xliff:g id="preference">shared_preferences_cwa</xliff:g>
......@@ -111,6 +112,7 @@
<!-- ####################################
Menu
###################################### -->
<!-- Todo pluralize strings when necessary -->
<!-- Todo include date formats when necessary -->
<!-- XMIT: application overview -->
......@@ -142,7 +144,10 @@
<!-- XTXT: risk card - no contact yet -->
<string name="risk_card_body_contact">Bisher keine Risiko-Begegnungen</string>
<string name="risk_card_body_contact_value">%1$s Risikobegegnungen</string>
<plurals name="risk_card_body_contact_value">
<item quantity="one">%1$s Risikobegegnung</item>
<item quantity="other">%1$s Risikobegegnungen</item>
</plurals>
<!-- XTXT: risk card - tracing active for x out of 14 days -->
<string name="risk_card_body_saved_days">%1$s von 14 Tagen aktiv</string>
<string name="risk_card_body_not_yet_fetched">Kontakte wurden noch nicht überprüft.</string>
......@@ -159,7 +164,10 @@
<string name="risk_card_low_risk_headline">Niedriges Risiko</string>
<!-- XHED: risk card - increased risk headline -->
<string name="risk_card_increased_risk_headline">Erhöhtes Risiko</string>
<string name="risk_card_increased_risk_body_contact_last">%1$s Tage seit der letzten Begegnung</string>
<plurals name="risk_card_increased_risk_body_contact_last">
<item quantity="one">%1$s Tag seit der letzten Begegnung</item>
<item quantity="other">%1$s Tage seit der letzten Begegnung</item>
</plurals>
<!-- XHED: risk card - unknown risk headline -->
<string name="risk_card_unknown_risk_headline">Unbekanntes Risiko</string>
<!-- XTXT: risk card - tracing isn't active long enough, so a new risk level can't be calculated -->
......@@ -204,6 +212,7 @@
<!-- ####################################
Main - Overview
###################################### -->
<string name="main_overview_title">Überblick</string>
<string name="main_overview_subtitle_tracing">Risiko-Ermittlung</string>
<string name="main_overview_body_tracing">Die Risiko-Ermittung ist eine der drei zentralen Funktionen der App. Ist sie aktiv, werden Begegnungen aufgezeichnet. Sie brauchen sich um ncihts mehr zu kümmern.</string>
......@@ -264,7 +273,10 @@
<!-- XMSG: risk details - risk calculation wasn't possible for 24h, below behaviors -->
<string name="risk_details_information_body_outdated_risk">Ihre Risiko-Berechnung konnte seit mehr als 24 Stunden nicht aktualisiert werden.</string>
<string name="risk_details_information_body_low_risk">Sie haben ein niedriges Infektionsrisiko, da keine Begegnung mit nachweislich Coronapositiv getesteten Personen aufgezeichnet wurde oder sich Ihre Begegnung auf kurze Zeit und einen größeren Abstand beschränkt hat.</string> <!-- final -->
<string name="risk_details_information_body_increased_risk">Sie haben ein erhöhtes Infektionsrisiko, da Sie zuletzt vor %1$s Tagen mindestens einer- Corona positiv-getesteten Person über einen längeren Zeitraum und mit einem geringen Abstand begegnet sind.</string>
<plurals name="risk_details_information_body_increased_risk">
<item quantity="one">Sie haben ein erhöhtes Infektionsrisiko, da Sie zuletzt vor %1$s Tag mindestens einer- Corona positiv-getesteten Person über einen längeren Zeitraum und mit einem geringen Abstand begegnet sind.</item>
<item quantity="other">Sie haben ein erhöhtes Infektionsrisiko, da Sie zuletzt vor %1$s Tagen mindestens einer- Corona positiv-getesteten Person über einen längeren Zeitraum und mit einem geringen Abstand begegnet sind.</item>
</plurals>
<string name="risk_details_information_body_notice">Das Infektionsrisiko wird anhand der Daten der Risiko-Ermittlung unter Berücksichtigung von Abstand und Dauer lokal auf Ihrem Smartphone berechnet. Ihr Infektionsrisiko ist für niemanden einsehbar und wird nicht weitergegeben.</string> <!-- final -->
<string name="risk_details_button_update">@string/risk_card_button_update</string>
<string name="risk_details_button_enable_tracing">@string/risk_card_button_enable_tracing</string>
......@@ -272,6 +284,7 @@
<!-- ####################################
Onboarding
###################################### -->
<string name="onboarding_image_description">IS MISSING</string>
<string name="onboarding_button_disable">Nicht aktivieren</string>
<!-- XBUT: onboarding - next -->
......@@ -348,7 +361,10 @@
<string name="settings_tracing_status_connection_headline">Internetverbindung aktivieren</string>
<string name="settings_tracing_status_connection_body">Die Risiko-Ermittlung benötigt eine Internetverbindung um Risikobegegnungen berechnen zu können. Bitte aktivieren Sie WLAN oder Mobile Daten in Ihren Einstellungen.</string>
<string name="settings_tracing_status_connection_button">Einstellungen öffnen</string>
<string name="settings_tracing_status_body_active">Risiko-Ermittlung ist seit %1$s Tagen aktiv.</string>
<plurals name="settings_tracing_status_body_active">
<item quantity="one">Risiko-Ermittlung ist seit %1$s Tag aktiv.</item>
<item quantity="other">Risiko-Ermittlung ist seit %1$s Tagen aktiv.</item>
</plurals>
<string name="settings_tracing_status_body_inactive">Die Risiko-Ermittlung umfasst %1$s von 14 Tagen.</string>
<!-- Notifications -->
<string name="settings_notifications_title">Mitteilungen</string>
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment