Translating a Vaadin DatePicker

Jeannot MullerJeannot Muller
1 min read

Translating (internationalization of) the default English DatePicker in Vaadin (Flow) is quite straightforward.

I created a compact subroutine for effortless reuse in all of my date pickers.

// Declaration
private final DatePicker birthday = new DatePicker("Geburtstag");

// Set German DatePicker
birthday.setI18n(Parsers.setGermanDatePicker());

The code above calls the "setGermanDatePicker" method, which is located in the "Parsers" class in my specific case.

    /**
     * Set German DatePicker
     * Fill the DatePickerI18n with German values (First day Monday, etc.)
     * 
     * @return
     */
    public static DatePickerI18n setGermanDatePicker() {
        DatePickerI18n dpI18n = new DatePicker.DatePickerI18n();
        dpI18n.setDateFormat("dd.MM.yyyy");
        dpI18n.setFirstDayOfWeek(1);
        dpI18n.setToday("Heute");
        dpI18n.setCancel("Abbrechen");
        dpI18n.setMonthNames(List.of("Januar", "Februar", "März", "April", "Mai", "Juni", "Juli",
                "August", "September", "Oktober", "November", "Dezember"));
        dpI18n.setWeekdays(List.of("Sonntag", "Montag", "Dienstag", "Mittwoch", "Donnerstag", "Freitag", "Samstag"));
        dpI18n.setWeekdaysShort(List.of("So", "Mo", "Di", "Mi", "Do", "Fr", "Sa"));
        return dpI18n;
    }

It should be simple to adapt the above code for other languages or more complex situations, such as translating based on the locale passed to the function. However, I only require German for this Vaadin app.

0
Subscribe to my newsletter

Read articles from Jeannot Muller directly inside your inbox. Subscribe to the newsletter, and don't miss out.

Written by

Jeannot Muller
Jeannot Muller

Founder and Managing Director at TECcompanion GmbH