Skip to content

Elaborate on the future of the LangLibs. #21

Description

@Zoriot

The current state of LL itself is not optimal. Parts like the exposed API are currently substandard and would need redesigning.

Another question is whether this makes sense when you can just use the Adventure Global Translation System (https://docs.papermc.io/adventure/localization/).

The only feature I can see at the moment is the ability to use a different language for LL plugins than for the client. I'm not sure if this feature justifies the maintenance burden that the system currently introduces. Other things, such as the language selection menu, could also be considered.
One other issue, which only affects a small number of plugins, is that you cannot query the player's language when they are offline. This could easily be fixed by storing the language on the player PDC.

The current flaws in LL:

  • Highly dependent on Paper
  • Requires Standalone plugin
  • Language Selection in own plugin
  • Requires LL Code Changes when a plugin want's to support a new language cleanly
  • Uses Config Version
  • Only supports yml
  • Implementing it fully shaded is rather complicated - Morpheus can tell more about that
  • Only a few plugins (all Alps plugins) supports it
  • If another language is selected it creates a weird mix of different languages
  • See the open issues for more context
  • Limited Component Support
  • No support for mini msg or additional functions like placeholders

We could also rework many parts of LangLibs and use Adventure internally. That way, we could probably have a nice API, but it would require quite a lot of work without much gain. If we do that, we should also prioritise DazzleConf support.

Based on the information I have, I currently favour abandoning LangLibs and switching the plugins to Adventure itself.

For now, I want to seek other input. It's important to come to a decision quickly because other time-critical things, like BuildTheEarth/BuildTeamTools#30, depend on it.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    questionFurther information is requested

    Type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions