Я получаю время в секундах, и мне нужно предоставить составной текст в формате "[+] [-] Xh Xmin", где X - число в диапазоне 01-59.Проблема в том, что система имеет несколько локалей (у меня есть доступ к текущей локали), что означает, что аббревиатуры «h» и «min» должны быть скорректированы в соответствии с текущим языком системы.
Первое решение, которое приходит на ум, - это выполнитьперевод от руки и жесткий код всех возможных сокращений.Затем используйте карту для поиска перевода.Но, конечно, это подвержено ошибкам, отнимает много времени и в целом не является элегантным решением.Я думаю, что возможное решение будет включать использование чего-то похожего на std::get_time()
или любую другую зависящую от локали функцию времени из стандартной библиотеки или boost.
Ожидаемый результат для предоставленного значения времени 10 часов и 25 минут будет:
с использованием локали en_GB "+ 10h 25min"
с использованием локали ru_RU "+ 10ч 25мин"
с использованием локали ja_JP - я даже не знаю, должен провести исследование и выучить некоторые правила (это также зачем переводитьот руки это нежелательное решение)