kgv / bevy_fluent

Bevy plugin for localization using Fluent.
Apache License 2.0
121 stars 16 forks source link

Supporting moddability in games made with bevy_fluent #8

Open TheLeonsver1 opened 3 years ago

TheLeonsver1 commented 3 years ago

So my game's structure might be something like this:

assets
    mods
        [mod_name]
            data
                events
            localization
            scripts
        [mod_name]
            data
                events
            localization
            scripts

And since it might be hard to use std::fs to scan folders on some platforms, I'd very much like it, if FluentServer could get a load_folder() function that would receive a language identifier (for example en-US) and when I'll give it the path mods it will load all localization files that are inside my mods folder and are related to the en-US localization, something like bevy's AssetServer with its recursive load_folder().

I think it would require bevy_fluent's .ron files to have an extension other than .ron. It might not be needed in a bevy 0.5 version if it'll happen, but it would be better in a 0.6 version probably because of this https://github.com/bevyengine/bevy/pull/2292 I think

What would your thoughts about such a feature be?

Thanks again for the crate!

kgv commented 3 years ago

Initially, I had plans to support this functionality (see implicit section). But then I gave it up because I couldn't find a good reason why I needed it. However, dynamically loadable modules/plugins are where this functionality are needed. But in the implementation, I ran into a number of difficulties. According to preliminary estimates, I think it will be implemented in one form or another.

I am phrasing my thoughts more precisely after the weekend.

TheLeonsver1 commented 3 years ago

yeah, don't worry about it :) I don't mean to pressure you, I'm currently thinking about pausing my moddable-game project anyway, so this issue is more of a question if it might ever be added haha. It could definitely wait for after 0.6 since it might be easier to do then hopefully.