setlocaleはCにもある関数らしく
C++の標準に従うと、

locale loc("ja_JP.UTF-8");
locale::global(loc);
wstring str = L"こんにちは";
wcout << str << endl;

とするらしいですが(プログラミング言語C++)、
Linux環境(LANG=ja_JP.UTF-8)では正しく表示されました。
ソフトのローカライズ作業などでは、このようなこともするのでしょうか?