logo
Добро пожаловать, Гость! Чтобы использовать все возможности Вход или Регистрация.

Уведомление

Icon
Error

Dr.DG
#1 Оставлено : 11 марта 2009 г. 19:09:08(UTC)
Dr.DG

Статус: Member

Группы: Registered
Зарегистрирован: 30.10.2008(UTC)
Сообщений: 25

Обнаружил, что несмотря на изменение языка форума даты отображаются по-английски.

После небольшого исследования выяснил, что YAF присваивает свойствам CurrentCulture и CurrentUICulture (которые отвечают за языковое форматирование дат, чисел и т.д.) для CurrentThread первый язык из языковых настроек браузера (в IE Tools -> Internet options -> General -> Languages).

Т.о., если для форума, например, выбран русский язык, а в настройках браузера первый язык - не русский, даты отображаются неожиданным образом.

IMHO это не совсем логично и правильнее было бы брать CultureInfo из языка форума.

Подправил код в файле Context.cs для устранения этого эффекта. Изменённый исходник и откомпилированная библиотека в приложенных файлах.

Отредактировано пользователем 11 марта 2009 г. 22:25:21(UTC)  | Причина: Не указана

Вложение(я):
YAF.Classes.Utils.dll.zip (53kb) загружен 4 раз(а).
Context.cs.zip (7kb) загружен 4 раз(а).
Admin
#2 Оставлено : 12 марта 2009 г. 12:01:36(UTC)
Admin

Статус: Administration

Группы: Registered
Зарегистрирован: 12.09.2008(UTC)
Сообщений: 194

Сказал(а) «Спасибо»: 1 раз
Поблагодарили: 1 раз в 1 постах
Спасибо :)

Раньше формат даты был в настройках языка, но помоему потом его оттуда убрали.
Dr.DG
#3 Оставлено : 12 марта 2009 г. 14:09:02(UTC)
Dr.DG

Статус: Member

Группы: Registered
Зарегистрирован: 30.10.2008(UTC)
Сообщений: 25

Admin написал:
Раньше формат даты был в настройках языка, но помоему потом его оттуда убрали.


ФОРМАТ даты действительно задаётся в языковом файле, но ЯЗЫК даты зависит от CurrentCulture текущего потока.
Admin
#4 Оставлено : 17 марта 2009 г. 15:53:17(UTC)
Admin

Статус: Administration

Группы: Registered
Зарегистрирован: 12.09.2008(UTC)
Сообщений: 194

Сказал(а) «Спасибо»: 1 раз
Поблагодарили: 1 раз в 1 постах
Dr.DG написал:
Admin написал:
Раньше формат даты был в настройках языка, но помоему потом его оттуда убрали.


ФОРМАТ даты действительно задаётся в языковом файле, но ЯЗЫК даты зависит от CurrentCulture текущего потока.
Тогда решением без правки исходников может быть ДД.ММ.ГГГГ. Иного способа кроме предложенного автором и правда нет.

Отредактировано пользователем 17 марта 2009 г. 15:59:15(UTC)  | Причина: Не указана

Dr.DG
#5 Оставлено : 19 марта 2009 г. 16:12:45(UTC)
Dr.DG

Статус: Member

Группы: Registered
Зарегистрирован: 30.10.2008(UTC)
Сообщений: 25

Admin написал:
Тогда решением без правки исходников может быть ДД.ММ.ГГГГ.

Что имеется в виду? Мы же говорим о языке а не о формате.
Admin
#6 Оставлено : 20 марта 2009 г. 16:45:10(UTC)
Admin

Статус: Administration

Группы: Registered
Зарегистрирован: 12.09.2008(UTC)
Сообщений: 194

Сказал(а) «Спасибо»: 1 раз
Поблагодарили: 1 раз в 1 постах
Dr.DG написал:
Admin написал:
Тогда решением без правки исходников может быть ДД.ММ.ГГГГ.

Что имеется в виду? Мы же говорим о языке а не о формате.
В этом и фишка. У меня стояла задача - сделал такой формат, в нем ведь нет языкозависимых элементов Wink
Dr.DG
#7 Оставлено : 23 марта 2009 г. 15:24:55(UTC)
Dr.DG

Статус: Member

Группы: Registered
Зарегистрирован: 30.10.2008(UTC)
Сообщений: 25

Admin написал:
В этом и фишка. У меня стояла задача - сделал такой формат, в нем ведь нет языкозависимых элементов Wink

Т.е. вы хотели "обойти" проблему языка, используя "языконезависимый" формат даты? Wink

Да, он задаётся в языковом файле. Если вы хотите получить ВСЕ даты в формате ДД.ММ.ГГГГ, нужно:

1. включить Date and time format from language file в Administration » Host Settings

2. задать строку форматирования дат как "dd.MM.yyyy" в языковом файле, например russian.xml:

Код:
<Resource tag="FORMAT_DATE_TIME_LONG">dd.MM.yyyy HH:mm:ss</Resource>
<Resource tag="FORMAT_DATE_TIME_SHORT">dd.MM.yyyy HH:mm:ss</Resource>
<Resource tag="FORMAT_DATE_LONG">dd.MM.yyyy</Resource>
<Resource tag="FORMAT_DATE_SHORT">dd.MM.yyyy</Resource>

Отредактировано пользователем 23 марта 2009 г. 17:29:40(UTC)  | Причина: Не указана

Admin
#8 Оставлено : 23 марта 2009 г. 17:08:31(UTC)
Admin

Статус: Administration

Группы: Registered
Зарегистрирован: 12.09.2008(UTC)
Сообщений: 194

Сказал(а) «Спасибо»: 1 раз
Поблагодарили: 1 раз в 1 постах
Именно так я и делал :)
Dr.DG
#9 Оставлено : 23 марта 2009 г. 17:32:31(UTC)
Dr.DG

Статус: Member

Группы: Registered
Зарегистрирован: 30.10.2008(UTC)
Сообщений: 25

Admin написал:
Именно так я и делал :)

Но не в этом форуме? В моём браузере дата отображается на чистом американском, "Tuesday, February 10, 2009 9:52 AM".

Отредактировано пользователем 23 марта 2009 г. 18:29:11(UTC)  | Причина: Не указана

Admin
#10 Оставлено : 24 марта 2009 г. 13:20:42(UTC)
Admin

Статус: Administration

Группы: Registered
Зарегистрирован: 12.09.2008(UTC)
Сообщений: 194

Сказал(а) «Спасибо»: 1 раз
Поблагодарили: 1 раз в 1 постах
Dr.DG написал:
Но не в этом форуме? В моём браузере дата отображается на чистом американском, "Tuesday, February 10, 2009 9:52 AM".
Не в этом, а на стороннем сайте, где заказчик возжелал BigGrin.

У меня самого, например софт весь англицкий, но настройки на пояс русские, и все ок отображается по умолчанию. Поскольку даже в таком виде я не нашел это проблеммой, то забил и оставил по дефолту.
Пользователи, просматривающие эту тему
Guest
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.

Форум YAF | YAF © 2003-2012, Yet Another Forum.NET
Страница сгенерирована за 0.220 секунды.