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
-
Method Summary
Modifier and TypeMethodDescriptionboolean
Checks if any translations are explicitly registered for the specified key.static @NotNull TranslationRegistry
Creates a new standalone translation registry.void
defaultLocale
(@NotNull Locale locale) Sets the default locale used by this registry.void
register
(@NotNull String key, @NotNull Locale locale, @NotNull MessageFormat format) Registers a translation.default void
registerAll
(@NotNull Locale locale, @NotNull Path path, boolean escapeSingleQuotes) Registers a resource bundle of translations.default void
registerAll
(@NotNull Locale locale, @NotNull Map<String, MessageFormat> formats) Registers a map of translations.default void
registerAll
(@NotNull Locale locale, @NotNull ResourceBundle bundle, boolean escapeSingleQuotes) Registers a resource bundle of translations.default void
registerAll
(@NotNull Locale locale, @NotNull Set<String> keys, Function<String, MessageFormat> function) Registers a resource bundle of translations.@Nullable MessageFormat
Gets a message format from a key and locale.void
unregister
(@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
locale
is not found, we will then trylocale
without a country code, and then finally fallback to a default locale.- Specified by:
translate
in interfaceTranslator
- Parameters:
locale
- a localekey
- a translation key- Returns:
- a message format or
null
to 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
UTF8ResourceBundleControl
as 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
-