elliebot/src/EllieBot.Generators
2024-03-23 14:54:27 +13:00
..
Cloneable Updated EllieBot.Generators 2024-03-23 14:54:27 +13:00
Command Updated EllieBot.Generators 2024-03-23 14:54:27 +13:00
EllieBot.Generators.csproj Updated EllieBot.Generators 2024-03-23 14:54:27 +13:00
LocalizedStringsGenerator.cs Updated EllieBot.Generators 2024-03-23 14:54:27 +13:00
README.md Updated EllieBot.Generators 2024-03-23 14:54:27 +13:00

Generators

Project which contains source generators required for EllieBot project


1) Localized Strings Generator

-- Why --
Type safe response strings access, and enforces correct usage of response strings.

-- How it works --
Creates a file "strs.cs" containing a class called "strs" in "EllieBot" namespace.

Loads "data/strings/responses.en-US.json" and creates a property or a function for each key in the responses json file based on whether the value has string format placeholders or not.

- If a value has no placeholders, it creates a property in the strs class which returns an instance of a LocStr struct containing only the key and no replacement parameters

- If a value has placeholders, it creates a function with the same number of arguments as the number of placeholders, and passes those arguments to the LocStr instance

-- How to use --
1. Add a new key to responses.en-US.json "greet_me": "Hello, {0}"
2. You now have access to a function strs.greet_me(obj p1)
3. Using "GetText(strs.greet_me("Me"))" will return "Hello, Me"