std::locale::messages
अनुवाद कैटलॉग खोलने के लिए उपयोग किया जाता है (आमतौर पर जीएनयू gettext
) अनुवाद तारों सहित।
#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);
}
जो आउटपुट:
"No match" in German: Keine Übereinstimmung
"Memory exhausted" in German: Speicher erschöpft
यहाँ एक
example जो एक मौजूदा संदेश जर्मन, retrieves (
get()
का उपयोग) में लिनक्स पर (
sed
के लिए) का उपयोग कर सूची खोलता है और अंग्रेजी स्ट्रिंग्स के लिए अनुवाद आउटपुट है
संपादित करें: this comment के अनुसार स्पष्टीकरण।
न केवल जीएनयू गेटटेक्स्ट। संदेश कैटलॉग POSIX का हिस्सा हैं (उदा।, जेनकैट (1), कैटोपेन (3))। विंडोज़ में संदेश कैटलॉग भी हैं, हालांकि मुझे यकीन नहीं है कि क्या उन्होंने कभी भी मानक लोकेल संदेश पहलुओं को लागू करने के लिए परेशान किया है। – bames53