this method performs Level 1 and Level 2 canonicalization according to ICU standards. See http://userguide.icu-project.org/locale#TOC-Canonicalization.
echo \Locale::canonicalize ( 'en-US.utf8' );
// "en_U"
echo \Locale::canonicalize ( 'FR-fr@EURO' );
// "fr_FR@currency=EUR"
echo \Locale::canonicalize ( '' );
// "en_US_POSIX"