prepare_locale_ ()
{
- # Solaris 11 doesn't strip the CODESET part from the locale name,
- # when looking for a message catalog. Create a directory link with
- # CODESET, to work around this.
+ # Solaris 11.[0-3] doesn't strip the CODESET part from the locale name,
+ # when looking for a message catalog. E.g. when the locale is fr_FR.UTF-8,
+ # on Solaris 11.[0-3] it looks for
+ # <LOCALEDIR>/fr_FR.UTF-8/LC_MESSAGES/<domain>.mo
+ # <LOCALEDIR>/fr.UTF-8/LC_MESSAGES/<domain>.mo
+ # Similarly, on Solaris 11 OpenIndiana and Solaris 11 OmniOS it looks only for
+ # <LOCALEDIR>/fr_FR.UTF-8/LC_MESSAGES/<domain>.mo
+ # Reported at <https://www.illumos.org/issues/13423>.
+ # On Solaris 11.4 this is fixed: it looks for
+ # <LOCALEDIR>/fr_FR.UTF-8/LC_MESSAGES/<domain>.mo
+ # <LOCALEDIR>/fr.UTF-8/LC_MESSAGES/<domain>.mo
+ # <LOCALEDIR>/fr_FR/LC_MESSAGES/<domain>.mo
+ # <LOCALEDIR>/fr/LC_MESSAGES/<domain>.mo
+ # Create a directory link with CODESET, to work around this.
if test "$1" != "$2" && test "$GLIBC2" = no; then
case "$host_os" in
solaris2.11)