LittleBigRefresh / Refresh

A second-generation custom server for LittleBigPlanet that focuses on quality of life features and improving user experience.
https://lbp.littlebigrefresh.com
GNU Affero General Public License v3.0
68 stars 25 forks source link

Internationalization #357

Open Beyley opened 8 months ago

Beyley commented 8 months ago

We'll need to find a good library for this or make one ourselves for C# (honestly i'm fine with either)

Here i'm listing some of the important code changes that need to happen refresh side. Feel free to split any of these off into separate issues

Beyley commented 8 months ago

Thinking about it more, what more should be localizable? Why not localize developer slot names (since iirc those are translated in the original game) Since we are extracting these names from localization files anyway (once i actually get around to finishing that tooling) it shouldnt be hard to pull out the names for all the languages

maybe we should have a LocalizableString type which when serialized picks the right string for the language eg.

[XmlRoot("bla")]
public class Whatever {
    public LocalizableString Name { get; set; } = "localization_key_goes_here"; //implicit cast

    public void FillInExtraData(GameUser user) {
        this.Name.Target = user.Language;
    }
}

This would make localizing things like this quite easy