Now that I18n is marked @Deprecated and refers to LanguageMap.getInstance(), it might be a good idea to make that method public so that mod authors may actually use the new system.
we don't know why a lot of these things are deprecated
the languagemap really isn't meant to be queried manually
The apparent successor is the client version I18n
Speculation, but they are probably trying to move away from server-side translation.
Server side translations are bad, Do not do them. The server side i18n is deprecated by Mojang, the client should be fine as it's used all over the place.
The server side I18n is still used in quite a lot of places, too (for instance inside Enchantment.getTranslatedName which may be called on the server side). I don't really know why it's been deprecated at all.
Because they are trying to move away from it, probably. That doesn't mean it immediately goes away.
Moajng isn't perfect {if they were I wouldnt have a job} They marked it deprecated because they want to remove it.
So stop using it.
Don't worry about the vanilla code, just make sure your code isn't doing it wrong.
How would you solve cases when the client doesn't have the mod and cannot accept a translation key then? Hardcoding the translated strings into code instead of the default language file doesn't seem like the best idea either.
https://github.com/chylex/Better-Sprinting/blob/master/src/main/java/chylex/bettersprinting/server/ServerCommandConfig.java#L77-L84
A potential solution is a standard sync for serverside only mods in the initial handshake packets.
However, it's nothing we need to worry about for now.
If it becomes an issue we can design something for it.
Most helpful comment
Because they are trying to move away from it, probably. That doesn't mean it immediately goes away.