From e3881a48c940a6aa220addddf6d6e84a5a5a27a5 Mon Sep 17 00:00:00 2001 From: Robin Roschlau Date: Mon, 6 Feb 2017 19:36:00 +0100 Subject: [PATCH 1/4] Make temperature difference localizable --- .../tropos/viewmodels/CurrentWeatherViewModel.kt | 10 +++++++++- app/src/main/res/values/strings.xml | 7 +++++++ 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/app/src/main/kotlin/com/thoughtbot/tropos/viewmodels/CurrentWeatherViewModel.kt b/app/src/main/kotlin/com/thoughtbot/tropos/viewmodels/CurrentWeatherViewModel.kt index c4b1230..9dd2531 100644 --- a/app/src/main/kotlin/com/thoughtbot/tropos/viewmodels/CurrentWeatherViewModel.kt +++ b/app/src/main/kotlin/com/thoughtbot/tropos/viewmodels/CurrentWeatherViewModel.kt @@ -28,7 +28,7 @@ class CurrentWeatherViewModel(val context: Context, val today: Condition, val yesterday: Condition) { fun weatherSummary(): SpannableStringBuilder { - val adjective = tempDifference().name.toLowerCase() + val adjective = context.getString(tempDifference().asAdjective()) val todayDescription = context.getString(timeOfDay().asPresentDayDescription()) val yesterdayDescription = context.getString(timeOfDay().asPreviousDayDescription()) val format = tempDifference().summaryFormat() @@ -81,6 +81,14 @@ class CurrentWeatherViewModel(val context: Context, val today: Condition, } } + private fun TemperatureDifference.asAdjective(): Int = when(this) { + SAME -> R.string.same + HOTTER -> R.string.hotter + WARMER -> R.string.warmer + COOLER -> R.string.cooler + COLDER -> R.string.colder + } + private fun TimeOfDay.asPresentDayDescription(): Int { when (this) { MORNING -> return string.present_morning diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 9071c92..567fee3 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -36,6 +36,13 @@ yesterday yesterday afternoon + //temperature difference + colder + cooler + same + warmer + hotter + //temperature formats It\'s %s %s than %s. It\'s the %s %s as %s. From 8d013ba1e0179d00a1d3702fd618e1090bfe2de1 Mon Sep 17 00:00:00 2001 From: Robin Roschlau Date: Mon, 6 Feb 2017 19:36:15 +0100 Subject: [PATCH 2/4] Add German localization --- app/src/main/res/values-de/strings.xml | 46 ++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 app/src/main/res/values-de/strings.xml diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml new file mode 100644 index 0000000..e203f67 --- /dev/null +++ b/app/src/main/res/values-de/strings.xml @@ -0,0 +1,46 @@ + + + //directions + + N + NO + O + SO + S + SW + W + NW + + //main + %1$d° / %2$d° / %3$d° + %1$s mph %2$s + %d° + 🙅🏾 🙅🏼 🙅🏻\n\nStandortermittlung ist ausgeschaltet. \n\nSchalte die Standortermittlung in den Einstellungen an, damit wir dir eine präzise Wettervorhersage geben können. + 🙅🏾 🙅🏼 🙅🏻\n\n%s + + //toolbar + Aktualisiert um %s + Rufe Wetter ab… + Aktualisierung fehlgeschlagen + + //time of day + heute Abend + heute Morgen + heute + heute Nachmittag + gestern Abend + gestern Morgen + gestern + gestern Nachmittag + + //temperature difference + kälter + kühler + ähnlich + wärmer + heißer + + //temperature formats + Es ist %2$s %1$s als %3$s. + Es ist %2$s %1$s wie %3$s. + From 0c40cf239bc141d3d741e2a5b784af659e0cf84e Mon Sep 17 00:00:00 2001 From: Robin Roschlau Date: Mon, 6 Feb 2017 20:17:03 +0100 Subject: [PATCH 3/4] Add test for German localization --- .../tropos/viewmodels/CurrentWeatherViewModelTest.kt | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/app/src/test/kotlin/com/thoughtbot/tropos/viewmodels/CurrentWeatherViewModelTest.kt b/app/src/test/kotlin/com/thoughtbot/tropos/viewmodels/CurrentWeatherViewModelTest.kt index fd4285d..a7708d3 100644 --- a/app/src/test/kotlin/com/thoughtbot/tropos/viewmodels/CurrentWeatherViewModelTest.kt +++ b/app/src/test/kotlin/com/thoughtbot/tropos/viewmodels/CurrentWeatherViewModelTest.kt @@ -55,6 +55,16 @@ class CurrentWeatherViewModelTest() { assertTrue { expected.contentEquals(actual) } } + @Config(qualifiers = "de") + @Test + fun testGermanWeatherSummary() { + val viewModel = CurrentWeatherViewModel(context, mockCondition, mockCondition) + val expected = "Es ist heute Nachmittag ähnlich wie gestern Nachmittag." + val actual = viewModel.weatherSummary() + + assertTrue { expected.contentEquals(actual) } + } + @Test fun testIcon() { val viewModel = CurrentWeatherViewModel(context, mockCondition, mockCondition) From 77413d57bac20332afa096b39cac5c2cf1c57d09 Mon Sep 17 00:00:00 2001 From: Robin Roschlau Date: Tue, 14 Feb 2017 22:25:52 +0100 Subject: [PATCH 4/4] Update PR #14 with changes made in PR #15 --- app/src/main/res/values-de/strings.xml | 90 +++++++++++-------- .../viewmodels/CurrentWeatherViewModelTest.kt | 2 +- 2 files changed, 53 insertions(+), 39 deletions(-) diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index e203f67..afc9a81 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -1,46 +1,60 @@ - //directions - - N - NO - O - SO - S - SW - W - NW + //directions + + N + NO + O + SO + S + SW + W + NW - //main - %1$d° / %2$d° / %3$d° - %1$s mph %2$s - %d° - 🙅🏾 🙅🏼 🙅🏻\n\nStandortermittlung ist ausgeschaltet. \n\nSchalte die Standortermittlung in den Einstellungen an, damit wir dir eine präzise Wettervorhersage geben können. - 🙅🏾 🙅🏼 🙅🏻\n\n%s + //main + %1$d° / %2$d° / %3$d° + %1$d mph %2$s + %1$d km/h %2$s + %d° + Powered by Dark Sky + thoughtbot + 🙅🏾 🙅🏼 🙅🏻\n\nStandortermittlung ist ausgeschaltet. \n\nSchalte die Standortermittlung in den Einstellungen an, damit wir dir eine präzise Wettervorhersage geben können. + 🙅🏾 🙅🏼 🙅🏻\n\n%s - //toolbar - Aktualisiert um %s - Rufe Wetter ab… - Aktualisierung fehlgeschlagen + //toolbar + Aktualisiert um %s + Rufe Wetter ab… + Aktualisierung fehlgeschlagen - //time of day - heute Abend - heute Morgen - heute - heute Nachmittag - gestern Abend - gestern Morgen - gestern - gestern Nachmittag + //time of day + heute Abend + heute Morgen + heute + heute Nachmittag + gestern Abend + gestern Morgen + gestern + gestern Nachmittag - //temperature difference - kälter - kühler - ähnlich - wärmer - heißer + //temperature difference + kälter + kühler + ähnlich + wärmer + heißer - //temperature formats - Es ist %2$s %1$s als %3$s. - Es ist %2$s %1$s wie %3$s. + //temperature formats + Es ist %2$s %1$s als %3$s. + Es ist %2$s %1$s wie %3$s. + + //settings + Metrisch + Angelsächsisch + Info + Privatsphäre + Einstellungen + Einstellungen + Mit 💜 handgefertigt von thoughtbot + Schließen + Einheitensystem diff --git a/app/src/test/kotlin/com/thoughtbot/tropos/viewmodels/CurrentWeatherViewModelTest.kt b/app/src/test/kotlin/com/thoughtbot/tropos/viewmodels/CurrentWeatherViewModelTest.kt index b6a282d..dd83b27 100644 --- a/app/src/test/kotlin/com/thoughtbot/tropos/viewmodels/CurrentWeatherViewModelTest.kt +++ b/app/src/test/kotlin/com/thoughtbot/tropos/viewmodels/CurrentWeatherViewModelTest.kt @@ -66,7 +66,7 @@ class CurrentWeatherViewModelTest() { @Config(qualifiers = "de") @Test fun testGermanWeatherSummary() { - val viewModel = CurrentWeatherViewModel(context, mockCondition, mockCondition) + val viewModel = CurrentWeatherViewModel(context, preferences, mockCondition, mockCondition) val expected = "Es ist heute Nachmittag ähnlich wie gestern Nachmittag." val actual = viewModel.weatherSummary()