The class messages_byname adds no functionality over messages. The const char* that it is constructed with is ignored. To localize messages for a specific culture, either open a different catalog (file), or have different sets in a catalog represent messages for different cultures.
namespace std { template <class charT> class messages_byname : public messages<charT> { public: typedef messages_base::catalog catalog; typedef basic_string<charT> string_type; explicit messages_byname(const char*, size_t refs = 0); protected: ~messages_byname(); // virtual virtual catalog do_open(const basic_string<char>&, const locale&) const; virtual string_type do_get(catalog, int set, int msgid, const string_type& dfault) const; virtual void do_close(catalog) const; }; }