Internationalization rules are known as facets. A locale object is a container of facets, and you can test if the locale has a specific facet using the has_facet function; if it does, you can get a const reference to the facet by calling the use_facet function. There are six types of facets summarized by seven categories of class in the following table. A facet class is a subclass of the locale::facet nested class.
|codecvt, ctype||Converts between one encoding scheme to another and is used to classify characters and convert them to upper or lowercase|
|collate||Controls the ordering and grouping of characters in a string, including comparing and hashing of strings|
|messages||Retrieves localized messages ...|