История изменений
Исправление mittorn, (текущая версия) :
что тут подразумевается под «форматером»?
Что-то что форматирует строки по шаблону. Т.к эти функции используются для технических строк, а не полноценного юзеринтерфейса, поддержка локалей здесь будет излишним усложнением. Например, если в текстовом конфиге внезапно вместо точки вылезет запятая для floating point, он станет непереносимым между локалями
можно ли тут формализовать «нужновость» локали, а так же определить критериальностности отнесения к таковому
Довольно сложный вопрос. Я, например, не вижу смысла в существовании codepage-локалей в современности, когда везде есть utf-8/utf-32, а стандартная библиотека (во всяком случае Си) хоть и поддерживает локализацию, но скорее наиболее неожиданными для программиста путями.
Но в случаях, когда локализация нужна, обычно локализируют и строки. В таким случае нам нужен gettext для локализации сообщений, ui тулкиты со встроенной локализацией, если мы работаем с gui/tui, unicode-утилиты для получения количества печатных символов, а не сырых кодпоинтов/байтов, если поставлена такая задача (что само по себе спорный вопрос т.к может не быть чёткого разделения для некоторых символов). А sprintf, который будет форматировать логи и технический вывод этим всем нагружать просто бессмысленно
std::locale
Пока что эта штука принесла мне кучу проблем вроде выкидывания исключений в неожиданных местах, поломок старых libc, ошибок сборки, но не помню ни одного случая, чтобы она была полезна
Исходная версия mittorn, :
что тут подразумевается под «форматером»?
Что-то что форматирует строки по шаблону. Т.к эти функции используются для технических строк, а не полноценного юзеринтерфейса, поддержка локалей здесь будет излишним усложнением. Например, если в текстовом конфиге внезапно вместо точки вылезет запятая для floating point, он станет непереносимым между локалями
можно ли тут формализовать «нужновость» локали, а так же определить критериальностности отнесения к таковому
Довольно сложный вопрос. Я, например, не вижу смысла в существовании codepage-локалей в современности, когда везде есть utf-8/utf-32, а стандартная библиотека (во всяком случае Си) хоть и поддерживает локализацию, но скорее наиболее неожиданными для программиста путями.
Но в случаях, когда локализация нужна, обычно локализируют и строки. В таким случае нам нужен gettext для локализации сообщений, ui тулкиты со встроенной локализацией, если мы работаем с gui/tui, unicode-утилиты для получения количества печатных символов, а не сырых кодпоинтов/байтов, если поставлена такая задача (что само по себе спорный вопрос т.к может не быть чёткого разделения для некоторых символов). А sprintf, который будет форматировать логи и технический вывод этим всем нагружать просто бессмысленно