// i18n/loc2.cpp #include #include #include #include using namespace std; int main() { // Создание локального контекста по умолчанию // в зависимости от состояния переменной окружения locale langLocale(""); // Присваивание локального контекста стандартному каналу вывода cout.imbue(langLocale); // Обработка имени локального контекста bool isGerman; if (langLocale.name() == "de_DE" || langLocale.name() == "de" || langLocale.name() == "german") { isGerman = true; } else { isGerman = false; } // Чтение локального контекста для ввода if (isGerman) { cout << "Sprachumgebung fuer Eingaben: "; } else { cout << "Locale for input: "; } string s; cin >> s; if (!cin) { if (isGerman) { cerr << "FEHLER beim Einlesen der Sprachumgebung" << endl; } else { cerr << "ERROR while reading the locale" << endl; } return EXIT_FAILURE; } locale cinLocale(s.c_str()); // Присваивание локального контекста стандартному каналу ввода cin.imbue(cinLocale); // Чтение и запись вещественных чисел в цикле double value; while (cin >> value) { cout << value << endl; } }