Hello, everyone! When using boost::locale with the russian language of the string in UTF-8 encoding I get an error while getting the locale. An exception with the message e.what(): "Conversion failed" is thrown My code is not very different from that in the examples: #define TR(S) boost::locale::translate(S).str()**const std ::string strDefaultLangId( "en" );**int main( int argc, char * argv[] )**{** using namespace std;** using namespace boost::locale;** int exitCode = EXIT_SUCCESS;** try** {** generator gen;** gen.add_messages_path("g:\\source\\boost_locale\\languages\\");** gen.add_messages_domain("messages");** std ::string language( argc == 2 ? argv[1] : strDefaultLangId.c_str() );** std::locale loc = gen( language );** locale::global( loc );** std::wstring s = TR(L"hello world");** wcout << s << endl;** }** catch( exception& e )** {** cout << "Error : " << e.what() << endl;** exitCode = EXIT_FAILURE;** }** catch ( ... )** {** cout << "Unknown error" << endl;** exitCode = EXIT_FAILURE;** }** return exitCode;**} The path to the file with the russian language: "g:\source\boost_locale\languages\ru\LC_MESSAGES\messages.mo" What could be wrong? * Is it necessary to use any backends? * Is it yet necessary to call imbue on the stream? But I'd like avoid it because I am going to write the log using glog.