localeProvider

var localeProvider: (Player) -> Locale

This function determines which locale is used for a player, by default Locale.US is always returned.

It is invoked every time a message is localized, so some sort of caching is advisable in many cases.