Fix wrong singular word translation in double digit numbers

This commit is contained in:
Christoph Atteneder 2018-05-23 18:50:43 +02:00
parent 323d058025
commit 8eed6908c7
No known key found for this signature in database
GPG key ID: CD5DC1C529CDFD3B
2 changed files with 5 additions and 4 deletions

View file

@ -571,10 +571,10 @@ public class BSFormatter {
String duration = durationMillis > 0 ? DurationFormatUtils.formatDuration(durationMillis, format) : "";
duration = StringUtils.replaceOnce(duration, "1 " + seconds, "1 " + second);
duration = StringUtils.replaceOnce(duration, "1 " + minutes, "1 " + minute);
duration = StringUtils.replaceOnce(duration, "1 " + hours, "1 " + hour);
duration = StringUtils.replaceOnce(duration, "1 " + days, "1 " + day);
duration = StringUtils.replacePattern(duration, "^1 " + seconds + "|\\b1 " + seconds, "1 " + second);
duration = StringUtils.replacePattern(duration, "^1 " + minutes + "|\\b1 " + minutes, "1 " + minute);
duration = StringUtils.replacePattern(duration, "^1 " + hours + "|\\b1 " + hours, "1 " + hour);
duration = StringUtils.replacePattern(duration, "^1 " + days + "|\\b1 " + days, "1 " + day);
return duration.trim();
}

View file

@ -89,6 +89,7 @@ public class BSFormatterTest {
assertEquals("1 hour, 0 minutes, 0 seconds", formatter.formatDurationAsWords(oneHour, true));
assertEquals("1 hour, 0 minutes, 1 second", formatter.formatDurationAsWords(oneHour + oneSecond, true));
assertEquals("1 hour, 0 minutes, 2 seconds", formatter.formatDurationAsWords(oneHour + oneSecond * 2, true));
assertEquals("2 days, 21 hours, 28 minutes", formatter.formatDurationAsWords(oneDay * 2 + oneHour * 21 + oneMinute * 28));
assertEquals("", formatter.formatDurationAsWords(0));
assertTrue(formatter.formatDurationAsWords(0).isEmpty());
}