Defined in header <locale> | ||||
---|---|---|---|---|
| (1) | |||
| (2) |
1) Public member function, calls the protected virtual member function do_get
of the most derived class.
2) Obtains a message from the open message catalog cat
using the values set
, msgid
and dfault
in implementation-defined manner. If the expected message is not found in the catalog, returns a copy of dfault
.
Parameters
cat | - | identifier of message catalog obtained from open() and not yet passed to close() |
set | - | implementation-defined argument, message set in POSIX |
msgid | - | implementation-defined argument, message id in POSIX |
dfault | - | the string to look up in the catalog (if the catalog uses string look-up) and also the string to return in case of a failure |
Return value
The message from the catalog or a copy of dfault
if none was found.
Notes
On POSIX systems, this function call usually translates to a call to catgets()
, and the parameters set
, msgid
, and dfault
are passed to catgets()
as-is. In GNU libstdc++, this function ignores set
and msgid
and simply calls GNU gettext(dfault)
in the required locale.
Example
The following example demonstrated retrieval of messages: on a typical GNU/Linux system it reads from /usr/share/locale/de/LC_MESSAGES/sed.mo
.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | #include <iostream> #include <locale> int main() { std::locale loc( "de_DE.utf8" ); std::cout.imbue(loc); auto& facet = std::use_facet<std::messages< char >>(loc); auto cat = facet.open( "sed" , loc); if (cat < 0 ) std::cout << "Could not open german \"sed\" message catalog\n" ; else std::cout << "\"No match\" in German: " << facet.get(cat, 0, 0, "No match" ) << '\n' << "\"Memory exhausted\" in German: " << facet.get(cat, 0, 0, "Memory exhausted" ) << '\n' ; facet.close(cat); } |
Output:
1 2 | "No match" in German: Keine Übereinstimmung "Memory exhausted" in German: Speicher erschöpft |
Please login to continue.