diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/general/duration_day_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/general/duration_day_en_US.ftl new file mode 100644 index 000000000..524d69531 --- /dev/null +++ b/abstracto-application/template-config/src/main/resources/templates/en_US/general/duration_day_en_US.ftl @@ -0,0 +1 @@ +1 day \ No newline at end of file diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/general/duration_days_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/general/duration_days_en_US.ftl new file mode 100644 index 000000000..a3ccfece8 --- /dev/null +++ b/abstracto-application/template-config/src/main/resources/templates/en_US/general/duration_days_en_US.ftl @@ -0,0 +1 @@ +${days} days \ No newline at end of file diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/general/duration_hour_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/general/duration_hour_en_US.ftl new file mode 100644 index 000000000..5be7fa748 --- /dev/null +++ b/abstracto-application/template-config/src/main/resources/templates/en_US/general/duration_hour_en_US.ftl @@ -0,0 +1 @@ +1 hour \ No newline at end of file diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/general/duration_hours_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/general/duration_hours_en_US.ftl new file mode 100644 index 000000000..90ff70cf4 --- /dev/null +++ b/abstracto-application/template-config/src/main/resources/templates/en_US/general/duration_hours_en_US.ftl @@ -0,0 +1 @@ +${hours} hours \ No newline at end of file diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/general/duration_minute_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/general/duration_minute_en_US.ftl new file mode 100644 index 000000000..ac6602da2 --- /dev/null +++ b/abstracto-application/template-config/src/main/resources/templates/en_US/general/duration_minute_en_US.ftl @@ -0,0 +1 @@ +1 minute \ No newline at end of file diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/general/duration_minutes_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/general/duration_minutes_en_US.ftl new file mode 100644 index 000000000..86d6099a1 --- /dev/null +++ b/abstracto-application/template-config/src/main/resources/templates/en_US/general/duration_minutes_en_US.ftl @@ -0,0 +1 @@ +${minutes} minutes \ No newline at end of file diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/general/duration_second_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/general/duration_second_en_US.ftl new file mode 100644 index 000000000..df3fbee70 --- /dev/null +++ b/abstracto-application/template-config/src/main/resources/templates/en_US/general/duration_second_en_US.ftl @@ -0,0 +1 @@ +1 second \ No newline at end of file diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/general/duration_seconds_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/general/duration_seconds_en_US.ftl new file mode 100644 index 000000000..d3f79ec2b --- /dev/null +++ b/abstracto-application/template-config/src/main/resources/templates/en_US/general/duration_seconds_en_US.ftl @@ -0,0 +1 @@ +${seconds} seconds \ No newline at end of file diff --git a/abstracto-application/templating/templating-impl/src/main/java/dev/sheldan/abstracto/templating/methods/DurationMethod.java b/abstracto-application/templating/templating-impl/src/main/java/dev/sheldan/abstracto/templating/methods/DurationMethod.java index f5604f0f7..4bf8c3454 100644 --- a/abstracto-application/templating/templating-impl/src/main/java/dev/sheldan/abstracto/templating/methods/DurationMethod.java +++ b/abstracto-application/templating/templating-impl/src/main/java/dev/sheldan/abstracto/templating/methods/DurationMethod.java @@ -41,36 +41,17 @@ public class DurationMethod implements TemplateMethodModelEx { Duration duration = (Duration) wrappedObject; StringBuilder stringBuilder = new StringBuilder(); // upgrading to java 9 makes this nicer - // todo refactor to use a single template, instead of multiple ones + HashMap parameters = new HashMap<>(); long days = duration.toDays(); - if(days > 0) { - stringBuilder.append(service.renderTemplate("day", getParam(days))); - } + parameters.put("days", days); long hours = duration.toHours() % 24; - if(hours > 0) { - stringBuilder.append(service.renderTemplate("hour", getParam(hours))); - } + parameters.put("hours", hours); long minutes = duration.toMinutes() % 60; - if(minutes > 0) { - stringBuilder.append(service.renderTemplate("minute", getParam(minutes))); - } + parameters.put("minutes", minutes); long seconds = duration.get(ChronoUnit.SECONDS) % 60; - if(seconds > 0) { - stringBuilder.append(service.renderTemplate("second", getParam(seconds))); - } + parameters.put("seconds", seconds); - return stringBuilder.toString(); - } - - /** - * Creates the parameter passed to the template for rendering the single time unit template. - * @param value - * @return - */ - private HashMap getParam(Long value) { - HashMap params = new HashMap<>(); - params.put("amount", value); - return params; + return service.renderTemplateWithMap("duration_formatting", parameters); } } diff --git a/abstracto-application/templating/templating-impl/src/main/resources/templates/embeds/builtins/day_en_US.ftl b/abstracto-application/templating/templating-impl/src/main/resources/templates/embeds/builtins/day_en_US.ftl deleted file mode 100644 index ed1bdeaf5..000000000 --- a/abstracto-application/templating/templating-impl/src/main/resources/templates/embeds/builtins/day_en_US.ftl +++ /dev/null @@ -1 +0,0 @@ -<#if amount gt 1>${amount} days<#else>1 day \ No newline at end of file diff --git a/abstracto-application/templating/templating-impl/src/main/resources/templates/embeds/builtins/duration_formatting_en_US.ftl b/abstracto-application/templating/templating-impl/src/main/resources/templates/embeds/builtins/duration_formatting_en_US.ftl new file mode 100644 index 000000000..1b2241108 --- /dev/null +++ b/abstracto-application/templating/templating-impl/src/main/resources/templates/embeds/builtins/duration_formatting_en_US.ftl @@ -0,0 +1 @@ +<#if days gt 1><#include "duration_days"><#elseif days = 1><#include "duration_day"> <#if hours gt 1><#include "duration_hours"><#elseif hours = 1><#include "duration_hour"> <#if minutes gt 1><#include "duration_minutes"><#elseif minutes = 1><#include "duration_minute"> <#if seconds gt 1><#include "duration_seconds"><#elseif seconds = 1><#include "duration_second"> \ No newline at end of file diff --git a/abstracto-application/templating/templating-impl/src/main/resources/templates/embeds/builtins/hour_en_US.ftl b/abstracto-application/templating/templating-impl/src/main/resources/templates/embeds/builtins/hour_en_US.ftl deleted file mode 100644 index 962e4abe0..000000000 --- a/abstracto-application/templating/templating-impl/src/main/resources/templates/embeds/builtins/hour_en_US.ftl +++ /dev/null @@ -1 +0,0 @@ -<#if amount gt 1>${amount} hours<#else>1 hour \ No newline at end of file diff --git a/abstracto-application/templating/templating-impl/src/main/resources/templates/embeds/builtins/minute_en_US.ftl b/abstracto-application/templating/templating-impl/src/main/resources/templates/embeds/builtins/minute_en_US.ftl deleted file mode 100644 index 129688f52..000000000 --- a/abstracto-application/templating/templating-impl/src/main/resources/templates/embeds/builtins/minute_en_US.ftl +++ /dev/null @@ -1 +0,0 @@ -<#if amount gt 1>${amount} minutes<#else>1 minute \ No newline at end of file diff --git a/abstracto-application/templating/templating-impl/src/main/resources/templates/embeds/builtins/second_en_US.ftl b/abstracto-application/templating/templating-impl/src/main/resources/templates/embeds/builtins/second_en_US.ftl deleted file mode 100644 index 62745b903..000000000 --- a/abstracto-application/templating/templating-impl/src/main/resources/templates/embeds/builtins/second_en_US.ftl +++ /dev/null @@ -1 +0,0 @@ -<#if amount gt 1>${amount} seconds<#else>1 second \ No newline at end of file