Current format of translation keys has serious flaws:
Usage of colons for namespacing, which introduces manual escaping in lang files.
It assumes that the second part of the translation key (first.second.third) is always the one that requries namespacing, making multi-level translation keys confusing.
Automatic namespacing of translation keys imposes some limitations on the developer.
What this pull request changes:
Colons are no longer being used in translation keys. Namespaces are instead their own parts. Example: item.namespace\:myItem.name -> item.namespace.myItem.name
Automatic namespacing is now opt-in and requires specifying where the namespace is supposed to be via a placeholder. Example: item.namespace.myItem.name -> item.@.myItem.name
StationAPI's own translation keys have been reformatted to be more consistent with vanilla. Example: stationapi\:achievementPage.myPage -> gui.stationapi.achievementPage.@.myPage
StationAPI's own lang files are no longer loaded in an alternative way that avoids module's specific automatic namespacing, since automatic namespacing is now opt-in by default.
Keybinds saving workaround is now removed, since colons are no longer used in translation keys and can no longer mess with Minecraft's options.txt parser.
Current format of translation keys has serious flaws:
first.second.third
) is always the one that requries namespacing, making multi-level translation keys confusing.What this pull request changes:
item.namespace\:myItem.name
->item.namespace.myItem.name
item.namespace.myItem.name
->item.@.myItem.name
stationapi\:achievementPage.myPage
->gui.stationapi.achievementPage.@.myPage