Our member Xor-El (short-hand for a very long name...) My Nigerian (dialects, this country has over 100 languages) is not up to date... has an excellent library here:
https://github.com/Xor-el/Passes all tests...and is maintained...
And he is almost always available for advice.