Проблема Delphi с пользователями, использующими календарь на арабском языке / хиджры
Некоторые из моих арабских пользователей сообщают мне о проблемах с моим приложением, сообщая об ошибках.
Общим для них является то, что они используют календарь Hijri и элемент управления TDateTimePicker, что вызывает проблемы (но вполне возможно, что весь TDateTime и RTL имеют проблемы, я не уверен)
Календарь Хиджры имеет другой год начала / конца, который не очень подходит для моего приложения. (AFAIK, Hijri впервые стал доступен в Windows7.)
У меня проблема с воспроизведением ошибки, потому что 1) я не могу читать по-арабски, что усложняет задачу 2) Я могу выбрать хиджры, только если для Windows установлен арабский (в противном случае это не отображается)
Кто-нибудь здесь с такими же проблемами? Я пользуюсь Delphi 2010
Могу ли я заставить свое приложение использовать стандартный календарь? (как решение) или я могу заставить Windows календарь Hijri на английском Windows? (для тестирования)
2 ответа
В любом случае в XP, если вы этого еще не сделали, в диалоговом окне "Язык и региональные стандарты" панели управления перейдите на страницу "Языки" и сначала установите флажки "Дополнительная языковая поддержка" (Установить файлы для сложных скриптов и языков с написанием справа налево (включая тайский))". Для удовольствия, проверьте восточноазиатские языки тоже, на потом, когда вы захотите проверить, правильно ли работают китайские иероглифы.
Затем из панели управления "Язык и региональные стандарты" перейдите на вкладку "Дополнительно" и измените "Язык для программ, не поддерживающих Юникод", на арабский язык.
Далее вы можете перейти к дате / календарю и изменить тип календаря:
Календарь Хирджи на арабском языке выглядит следующим образом: التقويم الهجري
Первоначальный источник MSDN: http://www.microsoft.com/middleeast/msdn/ArabicCalendar.aspx
Дополнительный совет: если вы этого еще не сделали, начните использовать виртуальные машины для тестирования интернационализации. Вы действительно хотите сделать все это на своей главной рабочей станции? Не я. Я делаю это в виртуальных машинах.
Вы можете использовать функцию Windows API SetLocaleInfo, это изменит настройки пользователя в панели управления Windows, что может быть нежелательно.