Interface TranslatableComponent
- All Known Implementing Classes:
NotTranslatableText,TranslatableException,TranslatableFormattedText,TranslatableList,TranslatableRuntimeException,TranslatableText
public interface TranslatableComponent
Interface for components which can be used on different locales after creation.
One of the cases, when you want to use this interface, is if you need to display
some text to the user in his specific locale and also include it in the logs on the English.
Also if you want to implement this interface and your class can include other
Here is an example of how this is done in
Also if you want to implement this interface and your class can include other
TranslatableComponent
as arguments it is recommended to call their toLocalizedString(ULocale) method to enable their chaining.
Here is an example of how this is done in
TranslatableText:
private Map<String, Object> getNormalizedArgs(ULocale locale) {
Map<String, Object> normalizedArgs = new HashMap<>();
for (Entry<String, Object> argument : args.entrySet()) {
if (argument.getValue() instanceof TranslatableComponent) {
TranslatableComponent component = (TranslatableComponent) argument.getValue();
normalizedArgs.put(argument.getKey(), component.toLocalizedString(locale));
} else {
normalizedArgs.put(argument.getKey(), argument.getValue());
}
}
return normalizedArgs;
}
All classes that implement this interface support chaining-
Method Summary
Modifier and TypeMethodDescriptiondefault Stringdefault StringtoLocalizedString(com.ibm.icu.util.ULocale locale)
-
Method Details
-
toLocalizedString
- Parameters:
locale-- Returns:
- localized string in specific locale
-
toLocalizedString
- Returns:
- localized string in the Bookmap current locale
-
toDefaultString
- Returns:
- localized string in the Bookmap default locale (i.e.
Locale.ENGLISH)
-