FormatDateTime - знаки вопроса вместо месяца

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

FormatDateTime - знаки вопроса вместо месяца

Сообщение Lucifer » 05.01.2014 22:15:41

Коллеги, вопрос - возможно - уже обсуждался, но я что-то не нашел.
Имеем вот такой конфиг: Windows 2008R2 х64 (Windows 7 Prof, Win XP SP3 - на виртуалках, обе 32 бит), Lazarus 1.2 RC1 (1.0.14 - на виртуалках), FPC 2.6.2 во всех случаях. По ряду причин надо показывать пользователю дату в длинном формате, для чего пользуемся FormatDateTime('dd mmmm yyyy', Date) - вместо названия месяца показывает знаки вопроса. Если написать AnsiToUTF8(FormatDateTime('dd mmmm yyyy', Date)) - все ОК, отображает как положено. Ну и ладно бы, но как быть с календарем? К примеру, календарь из RX отображает дни недели и месяцы в виде знаков вопроса. RX скомпилирован с поддержкой русских ресурсов. Куда копать?
Lucifer
постоялец
 
Сообщения: 126
Зарегистрирован: 05.01.2014 21:39:03
Откуда: Новороссийск

Re: FormatDateTime - знаки вопроса вместо месяца

Сообщение Penilopa P » 05.01.2014 22:28:04

Чем стандартный календарь не устраивает (вкладка Misc)?
Penilopa P
незнакомец
 
Сообщения: 6
Зарегистрирован: 04.04.2011 21:57:05

Re: FormatDateTime - знаки вопроса вместо месяца

Сообщение zoltanleo » 05.01.2014 22:33:16

Lucifer писал(а):Куда копать?

Это, скорее всего, к автору компонента - сюда
Аватара пользователя
zoltanleo
постоялец
 
Сообщения: 459
Зарегистрирован: 17.10.2013 10:55:01

Re: FormatDateTime - знаки вопроса вместо месяца

Сообщение Lucifer » 05.01.2014 22:38:01

Проект довольно старый, переношу с дельфей. Много, где RX юзается. Если, конечно, проблема неразрешима, то придется выламывать и ставить стандартный календарь. Но как быть с FormatDateTime()? Заворачивать в AnsiToUTF8() - не вариант, стоит задача кроссплатформенности.
Lucifer
постоялец
 
Сообщения: 126
Зарегистрирован: 05.01.2014 21:39:03
Откуда: Новороссийск

Re: FormatDateTime - знаки вопроса вместо месяца

Сообщение ssadragon » 05.01.2014 22:38:20

alexs писал
Сейчас всё в DefaultFormatSettings
Насчёт проблем. - это фича. Так пока устроен FPC. В дальнейшем может все рещится после перехода к строкам, содержащим признак кодировки.

Я сделал так:
Код: Выделить всё
  {$IFDEF WINDOWS}
  For i := 1 To 12 Do
  Begin
    FormatSettings.LongMonthNames[i]  := UTF8Encode(FormatSettings.LongMonthNames[i]);
    FormatSettings.ShortMonthNames[i] := UTF8Encode(FormatSettings.ShortMonthNames[i]);
  End;

  For i := 1 To 7 Do
  Begin
    FormatSettings.LongDayNames[i]  := UTF8Encode(FormatSettings.LongDayNames[i]);
    FormatSettings.ShortDayNames[i] := UTF8Encode(FormatSettings.ShortDayNames[i]);
  End;
  {$ENDIF}

и еще вот так:
Код: Выделить всё
TranslateUnitResourceStrings('rxconst', PODirectory + 'rxconst.%s.po', Lang, FallbackLang);

и все нормально

Добавлено спустя 2 минуты 9 секунд:
Собственно тема
http://www.freepascal.ru/forum/viewtopi ... =18&t=7265
ssadragon
постоялец
 
Сообщения: 148
Зарегистрирован: 03.12.2012 20:21:35

Re: FormatDateTime - знаки вопроса вместо месяца

Сообщение Lucifer » 05.01.2014 22:51:36

ssadragon, сенкс!
Как-то я забыл, что формат можно переопределить... Туплю уже... Голова пухнет от переизбытка кода...
Трансляцию RX оставлю на потом... Первый вариант мне предпочтительнее - не надо дописывать переконвертацию отформатированных сообщений. А в тех местах, где используется именно календарь от RX, заменю его на стандартный от Лазаря...
Lucifer
постоялец
 
Сообщения: 126
Зарегистрирован: 05.01.2014 21:39:03
Откуда: Новороссийск


Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 236

Рейтинг@Mail.ru