Package net.kyori.adventure.translation
Interface TranslationRegistry
- All Superinterfaces:
Translator
A registry of translations. Used to register localized strings for translation keys. The registry can be submitted
to the
GlobalTranslator or can translate manually through translate(String, Locale).
The recommended way to register translations is through registerAll(Locale, ResourceBundle, boolean)
- Since:
- 4.0.0
-
Field Summary
Fields -
Method Summary
Modifier and TypeMethodDescriptionbooleanChecks if any translations are explicitly registered for the specified key.static @NotNull TranslationRegistryCreates a new standalone translation registry.voiddefaultLocale(@NotNull Locale locale) Sets the default locale used by this registry.voidregister(@NotNull String key, @NotNull Locale locale, @NotNull MessageFormat format) Registers a translation.default voidregisterAll(@NotNull Locale locale, @NotNull Path path, boolean escapeSingleQuotes) Registers a resource bundle of translations.default voidregisterAll(@NotNull Locale locale, @NotNull Map<String, MessageFormat> formats) Registers a map of translations.default voidregisterAll(@NotNull Locale locale, @NotNull ResourceBundle bundle, boolean escapeSingleQuotes) Registers a resource bundle of translations.default voidregisterAll(@NotNull Locale locale, @NotNull Set<String> keys, Function<String, MessageFormat> function) Registers a resource bundle of translations.@Nullable MessageFormatGets a message format from a key and locale.voidunregister(@NotNull String key) Unregisters a translation key.Methods inherited from interface net.kyori.adventure.translation.Translator
hasAnyTranslations, name, translate
-
Field Details
-
SINGLE_QUOTE_PATTERN
A pattern which matches a single quote.- Since:
- 4.0.0
-
-
Method Details
-
create
Creates a new standalone translation registry.- Parameters:
name- the registry id- Returns:
- a translation registry
- Since:
- 4.0.0
-
contains
Checks if any translations are explicitly registered for the specified key.- Parameters:
key- a translation key- Returns:
- whether the registry contains a value for the translation key
- Since:
- 4.7.0
-
translate
@Nullable @Nullable MessageFormat translate(@NotNull @NotNull String key, @NotNull @NotNull Locale locale) Gets a message format from a key and locale.If a translation for
localeis not found, we will then trylocalewithout a country code, and then finally fallback to a default locale.- Specified by:
translatein interfaceTranslator- Parameters:
locale- a localekey- a translation key- Returns:
- a message format or
nullto skip translation - Since:
- 4.0.0
-
defaultLocale
Sets the default locale used by this registry.- Parameters:
locale- the locale to use a default- Since:
- 4.0.0
-
register
void register(@NotNull @NotNull String key, @NotNull @NotNull Locale locale, @NotNull @NotNull MessageFormat format) Registers a translation.final TranslationRegistry registry; registry.register("example.hello", Locale.US, new MessageFormat("Hi, {0}. How are you?"));- Parameters:
key- a translation keylocale- a localeformat- a translation format- Throws:
IllegalArgumentException- if the translation key is already exists- Since:
- 4.0.0
-
registerAll
default void registerAll(@NotNull @NotNull Locale locale, @NotNull @NotNull Map<String, MessageFormat> formats) Registers a map of translations.final TranslationRegistry registry; final Map<String, MessageFormat> translations; translations.put("example.greeting", new MessageFormat("Greetings {0}. Doing ok?)); translations.put("example.goodbye", new MessageFormat("Goodbye {0}. Have a nice day!)); registry.registerAll(Locale.US, translations);- Parameters:
locale- a localeformats- a map of translation keys to formats- Throws:
IllegalArgumentException- if a translation key is already exists- Since:
- 4.0.0
- See Also:
-
registerAll
default void registerAll(@NotNull @NotNull Locale locale, @NotNull @NotNull Path path, boolean escapeSingleQuotes) Registers a resource bundle of translations.- Parameters:
locale- a localepath- a path to the resource bundleescapeSingleQuotes- whether to escape single quotes- Throws:
IllegalArgumentException- if a translation key is already exists- Since:
- 4.0.0
- See Also:
-
registerAll
default void registerAll(@NotNull @NotNull Locale locale, @NotNull @NotNull ResourceBundle bundle, boolean escapeSingleQuotes) Registers a resource bundle of translations.It is highly recommended to create your bundle using
UTF8ResourceBundleControlas your bundle control for UTF-8 support - for example:final ResourceBundle bundle = ResourceBundle.getBundle("my_bundle", Locale.GERMANY, UTF8ResourceBundleControl.get()); registry.registerAll(Locale.GERMANY, bundle, false);- Parameters:
locale- a localebundle- a resource bundleescapeSingleQuotes- whether to escape single quotes- Throws:
IllegalArgumentException- if a translation key is already exists- Since:
- 4.0.0
- See Also:
-
registerAll
default void registerAll(@NotNull @NotNull Locale locale, @NotNull @NotNull Set<String> keys, Function<String, MessageFormat> function) Registers a resource bundle of translations.- Parameters:
locale- a localekeys- the translation keys to registerfunction- a function to transform a key into a message format- Throws:
IllegalArgumentException- if a translation key is already exists- Since:
- 4.0.0
-
unregister
Unregisters a translation key.- Parameters:
key- a translation key- Since:
- 4.0.0
-