Проблема Delphi с пользователями, использующими арабский/хиджрский календарь

Некоторые из моих арабских пользователей сообщают мне о проблемах с моим приложением, выдающим ошибки.

Общим для них, похоже, является то, что они используют календарь Hijri и элемент управления TDateTimePicker, вызывая проблемы (но вполне возможно, что проблемы возникают у всего TDateTime и RTL, я не уверен)

Календарь хиджры имеет другое начало/конец года, что не совсем подходит для моего приложения. (Насколько мне известно, Хиджра впервые стала доступна в Windows7.)

У меня проблема с воспроизведением ошибки, потому что 1) я не могу читать по-арабски, что усложняет задачу 2) я могу выбрать хиджру только тогда, когда в Windows установлен арабский язык (в противном случае этот вариант не отображается)

Есть тут кто с такими же проблемами? Я использую Делфи 2010

Могу ли я заставить свое приложение использовать стандартный календарь? (как решение) или я могу заставить Windows использовать календарь Хиджры в английской Windows? (для тестирования)


person Tom    schedule 20.05.2011    source источник
comment
TDateTimePicker — это всего лишь оболочка Delphi для общего элемента управления Windows.   -  person Ondrej Kelle    schedule 20.05.2011
comment
Да. Но не имея возможности воспроизвести ошибку в своей системе, я не могу точно сказать, где ошибка. Код оболочки TDateTimePicker, общий RTL DateTime или, может быть, мой собственный код. (Из сообщений об ошибках у меня сложилось впечатление, что компонент TDateTimePicker/API-оболочка является по крайней мере одной из причин моих проблем.) Но проблема возникает только в арабских/хиджрских системах. Арабский/стандартный календарь работает нормально   -  person Tom    schedule 20.05.2011
comment
Может быть, это Y2K для календаря хиджры :-)   -  person Sam    schedule 20.05.2011


Ответы (2)


В любом случае, в XP, если вы еще этого не сделали, в диалоговом окне «Языки и региональные стандарты» Панели управления перейдите на страницу «Языки» и сначала установите флажки «Поддержка дополнительных языков» («Установить файлы для сложных сценариев и языков с письмом справа налево (включая тайский язык)». )». Ради интереса проверьте и восточноазиатские языки, чтобы потом проверить правильность работы китайских иероглифов.

Затем в Панели управления «Язык и региональные стандарты» перейдите на вкладку «Дополнительно» и измените «Язык для программ, отличных от Unicode», на арабский язык.

введите здесь описание изображения

Затем вы можете перейти к параметрам даты/календаря и изменить тип календаря:введите здесь описание изображения

Календарь Хирджи на арабском языке выглядит так: التقويم الهجري

Исходный источник MSDN: http://www.microsoft.com/middleeast/msdn/ArabicCalendar.aspx

Дополнительный совет: если вы еще этого не сделали, начните использовать виртуальные машины для тестирования интернационализации. Вы действительно хотите делать все это на своей основной рабочей станции? Не я. Я делаю это на виртуальных машинах.

person Warren P    schedule 21.05.2011
comment
Спасибо за хиджру на арабском языке! Очень поможет мне выбрать правильный календарь! :) Я попробую еще раз в Win7 :) У меня есть vmware, но мне нужно выполнить код, пока происходит ошибка, поэтому мне требуется установить новейшую среду разработки и т. д., чего я не сделал на данный момент в моем виртуальная машина :) - person Tom; 22.05.2011
comment
Привет, сейчас тестирую. Кажется, мне удалось в Win7 изменить дату/формат на арабский, а затем выбрать Хиджру. Таким образом, кажется, я могу протестировать английский язык, что очень помогает. (Спасибо!) Но я оставлю этот вопрос немного открытым, если кто-то переосмыслит точную проблему Delphi/Hijri (сейчас кажется, что я не могу заставить свое приложение ошибаться в Win7 с календарем Hijri) - person Tom; 22.05.2011
comment
Вы предоставили очень мало подробностей о конкретной ошибке, с которой вы столкнулись. Возможно, вы захотите добавить немного больше деталей. - person Warren P; 22.05.2011

Вы можете использовать функцию Windows API SetLocaleInfo, это изменит пользовательские настройки в панели управления Windows, что может быть нежелательно.

person Osama Al-Maadeed    schedule 29.05.2011