protected boolean useDefaultProcessName(LocalizableMessage processName) { return LocalizableMessage.isEmpty(processName) || processName instanceof SingleLocalizableMessage && USE_DEFAULT_NAME_MARKER.equals(((SingleLocalizableMessage) processName).getKey()); } //endregion
private boolean isNonTrivial(LocalizableMessage msg) { if (msg == null) { return false; } if (!(msg instanceof SingleLocalizableMessage)) { return true; } SingleLocalizableMessage single = (SingleLocalizableMessage) msg; if (single.getKey() != null || single.getFallbackLocalizableMessage() != null) { return true; } // a value more complex than "; " or ", " or ". " or "[" or "]" or something like that return single.getFallbackMessage() != null && single.getFallbackMessage().length() > 2; } }
public String translate(SingleLocalizableMessage msg, Locale locale) { String translated = translate(msg.getKey(), msg.getArgs(), locale); if (StringUtils.isNotEmpty(translated)) { return translated; } if (msg.getFallbackLocalizableMessage() != null) { translated = translate(msg.getFallbackLocalizableMessage(), locale); if (StringUtils.isNotEmpty(translated)) { return translated; } } return msg.getFallbackMessage(); }
@NotNull private static SingleLocalizableMessageType createLocalizableMessageType(@NotNull SingleLocalizableMessage message, Function<LocalizableMessage, String> resolveKeys) { SingleLocalizableMessageType rv = new SingleLocalizableMessageType(); rv.setKey(message.getKey()); if (message.getArgs() != null) { for (Object argument : message.getArgs()) { LocalizableMessageArgumentType messageArgument; if (argument instanceof LocalizableMessage) { messageArgument = new LocalizableMessageArgumentType() .localizable(createLocalizableMessageType(((LocalizableMessage) argument), resolveKeys)); } else { messageArgument = new LocalizableMessageArgumentType().value(argument != null ? argument.toString() : null); } rv.getArgument().add(messageArgument); } } if (message.getFallbackLocalizableMessage() != null) { rv.setFallbackLocalizableMessage(createLocalizableMessageType(message.getFallbackLocalizableMessage(), resolveKeys)); } if (StringUtils.isBlank(message.getFallbackMessage()) && resolveKeys != null) { rv.setFallbackMessage(resolveKeys.apply(message)); } else { rv.setFallbackMessage(message.getFallbackMessage()); } return rv; }