@Override public String getTranslation(String key, Locale locale, Object... params) { return getLocalizationContext().map(c -> c.asMessageResolver()).flatMap(r -> r.getMessage(locale, key, params)) .orElse(null); }
@Override public Optional<String> getMessage(Locale locale, Localizable localizable) { ObjectUtils.argumentNotNull(locale, "Locale must be not null"); ObjectUtils.argumentNotNull(localizable, "Localizable must be not null"); // check message code if (localizable.getMessageCode() == null) { return Optional.ofNullable(localizable.getMessage()); } // check I18nProvider if (getI18nProvider().isPresent()) { return Optional.ofNullable(getI18nProvider() .map(p -> p.getTranslation(localizable.getMessageCode(), locale, localizable.getMessageArguments())) .orElseGet(() -> localizable.getMessage())); } // check LocalizationContext return Optional.ofNullable(getLocalizationContext().flatMap(l -> l.asMessageResolver().getMessage(locale, localizable.getMessageCode(), localizable.getMessageArguments())).orElse(localizable.getMessage())); }
.getCurrent().flatMap(l -> l.asMessageResolver().getMessage(locale, localizable.getMessageCode(), localizable.getMessageArguments())) .orElse(localizable.getMessage()));