![]() |
|
|
![]()
|
|
| Rapalex |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 732 Регистрация: 20.1.2006 Где: Украина -> Ник олаев Репутация: 6 Всего: 8 |
Ситуация следующая. Существует продукт, который может заинтересовать людей например из США. А они думаю не в метрах и мм, а в дюймах, и моя задача приспособить продукт для них.
Первая проблема, это надписи на диалогах (на статиках). Банальная ситуация, 2 поля ввода "Длина:" и "Ширина:" нужно на каждом таком статике дописать ", мм" или дюйм. Ну я программно и дописываю, но мне это не нравится, может у кого-то есть предложение как это усовершенствовать? Есть-ли какой-то встроенный инструмент локализации, то-ли глобализации который позволяет это автоматизировать? -------------------- In vitium ducit culpae fuga. Желание избежать ошибки вовлекает в другую. (Horatius) |
|||
|
||||
| Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 87 Всего: 183 |
"Глобального" инструмента не знаю...
Я предпочитаю писать единицы прямо в редакторе, так выглядит естественнее: 100.5 ежиков. Требуется, конечно, доработка редактора: пользователь не нужно заставлять вводить единицы во время редактирования, т.е. как ему удобно - может стереть, а может не просто число поменять. Заодно в этот редактор можно встроить форматирование (число цифр после запятой), разборки с десятичной точкой (то ли точка, то ли запятая...) и т.д. Но тебе ведь надо еще и пересчитать значения. -------------------- ... |
|||
|
||||
| Lazin |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3820 Регистрация: 11.12.2006 Где: paranoid oil empi re Репутация: 2 Всего: 154 |
есть, называется std::locale, он конечно не переводит сантиметры в дюймы, но зато он позволяет правильно отображать числа с учетом региональных настроек, к примеру использовать принятый в той или иной стране десятичный разделитель... |
|||
|
||||
| Rapalex |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 732 Регистрация: 20.1.2006 Где: Украина -> Ник олаев Репутация: 6 Всего: 8 |
Earnest, спасибо, подумаю ад твоей реализацией.
Lazin, и тебе спасибо, хоть про локаль я знал. Кстати на сколько я понял локаль влияет на printf и тому подобные С-рантайм функции. А есть же ещё и FormatMessage, что-то на неё влияет? Рассказывайте всё что знаете, для меня это фоматирование до сих пор тёмное место )) -------------------- In vitium ducit culpae fuga. Желание избежать ошибки вовлекает в другую. (Horatius) |
|||
|
||||
| Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 87 Всего: 183 |
Есть еще виндовская setLocale, которая должна влиять на FormatMessage (и на функции RTL тоже, в принципе). Как эти 2 функции связаны - не знаю, никогда особо не интересовалась. Но помню что в одной из книг Майерса (кажется, Эффективное использование STL) есть целая глава на тему локалей. В отличие от MSDN, где не густо информации.
-------------------- ... |
|||
|
||||
| Rapalex |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 732 Регистрация: 20.1.2006 Где: Украина -> Ник олаев Репутация: 6 Всего: 8 |
Винда у меня русская, потому и локаль для потока стоит русская. Попробывал функцию GetNumberFormat и получил:
а рядом вызов
пробел после 31 не вытыкает ((( Не могу понять логики создателей этих функций! -------------------- In vitium ducit culpae fuga. Желание избежать ошибки вовлекает в другую. (Horatius) |
||||
|
|||||
| Lazin |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3820 Регистрация: 11.12.2006 Где: paranoid oil empi re Репутация: 2 Всего: 154 |
на printf влияет crt-шная функция set_locale, а с потоками(iostream) можно работать индивидуально, передавая в конструктор объект std::locale, а можно установить глобальную локаль, для всех потоков
|
|||
|
||||
| Rapalex |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 732 Регистрация: 20.1.2006 Где: Украина -> Ник олаев Репутация: 6 Всего: 8 |
Сделал
После чего
вернуло 31000,500000. В принципе верно но все равно не в виндовом формате. -------------------- In vitium ducit culpae fuga. Желание избежать ошибки вовлекает в другую. (Horatius) |
||||
|
|||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Visual C++/MFC/WTL | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |