Crate for manipulating language tags

Sometime ago I made 2 crates for localization:

With language-objects I can extract the native or international language name from a language tag. From regions (aka. countries), I can only extract international name.

For example:

  • "en_US" = "English (United States)"

However the implementation looks a bit unreliable and I'd like to do an abstraction over Fluent. When I implemented language-objects I copied JSON containing the language data from existing NPM packages (the read direction (left-to-right or right-to-left), the international name and the native name). Is there a better crate for this?

unic_langid provides only direction. I need direction, native name and international name (as well as separate region/country object with native name and international name).

Anyone found anything?