+ # `locale_select`
+ A simple library for selecting the user's locale preferences for various ICU4X modules, such as calendar, datetime and decimals.
+
+ ## Alternatives
+ This library is specific to ICU4X, but there are many Rust APIs with a similar focus. Here are some that I could find, and what they seem to do differently:
+ - [`simple-locale`](https://github.com/johnstonskj/simple-locale): very close to this crate, but doesn't use ICU4X libraries
+ - [`locale_settings`](https://docs.rs/locale-settings/latest/locale_settings): unmaintained(?) version of `simple-locale::settings`
+ - [`sys_locale`](https://github.com/1password/sys-locale): single locale instead of per-category
+ - [`utf8-locale`](https://gitlab.com/ppentchev/utf8-locale), [`locale-config`](https://github.com/rust-locale/locale_config): categories are less strongly typed
+ - [`gettextrs::setlocale()`](https://docs.rs/gettext-rs/latest/gettextrs/fn.setlocale.html): `gettext` bindings, this function can query the locale by setting the locale to a null string
+
+ ## Useful links
+ - POSIX:
+ - Locale category data: https://www.man7.org/linux/man-pages/man5/locale.5.html
+ - Locale category definitions: https://www.man7.org/linux/man-pages/man7/locale.7.html
+ - Description of locale names: https://www.gnu.org/software/libc/manual/html_node/Locale-Names.html
+ - Locale spec: https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap07.html
+ - Localization variables spec: https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap08.html#tag_08_02
+ - Unicode handling of POSIX identifiers: https://unicode.org/reports/tr35/tr35.html#Legacy_Variants