added: winix functions: locale, timezone
changed: time zones -- now we have the daylight saving time different for each year (start, end) added: config option: time_zone_id (size_t) time zone identifier for not logged users or for newly created accounts those identifiers you can see in etc/time_zones.conf file or by using timezone winix function with 'a' parameter (timezone/a) (!!IMPROVE ME NOT IMPLEMENTED YET) default: 34 (Coordinated Universal Time UTC+00:00) added: config option: locale_default_id (size_t) locale for not logged users or for newly created accounts added: config option: locale_max_id (size_t) a maximum value of a locale identifier default: 100 (maximum: 1000) each locale files should have its own identifier (in "winix_locale_id" field) from zero to this value added: config option: time_zone_max_id (size_t) maximum value of a time zone identifier time zones with an id greater than this will be skipped default: 130 (maximum: 1000) removed: config option: locale_default git-svn-id: svn://ttmath.org/publicrep/winix/trunk@852 e52654a7-88a9-db11-a3e9-0013d4bc506e
This commit is contained in:
@@ -2,7 +2,7 @@
|
||||
* This file is a part of Winix
|
||||
* and is not publicly distributed
|
||||
*
|
||||
* Copyright (c) 2008-2010, Tomasz Sowa
|
||||
* Copyright (c) 2008-2012, Tomasz Sowa
|
||||
* All rights reserved.
|
||||
*
|
||||
*/
|
||||
@@ -336,33 +336,38 @@ void winix_tz_tab(Info & i)
|
||||
|
||||
void winix_tz_tab_id(Info & i)
|
||||
{
|
||||
if( tz_index < system->time_zones.Size() )
|
||||
i.out << system->time_zones[tz_index].time_zone.tz_id;
|
||||
TimeZone * tz = system->time_zones.GetZoneByIndex(tz_index);
|
||||
|
||||
if( tz )
|
||||
i.out << tz->id;
|
||||
}
|
||||
|
||||
|
||||
void winix_tz_tab_name(Info & i)
|
||||
{
|
||||
if( tz_index < system->time_zones.Size() )
|
||||
{
|
||||
std::wstring & key = system->time_zones[tz_index].name_key;
|
||||
i.out << locale.Get(key); // !! IMPROVE ME which locale?
|
||||
}
|
||||
TimeZone * tz = system->time_zones.GetZoneByIndex(tz_index);
|
||||
|
||||
if( tz )
|
||||
i.out << locale.Get(tz->name);
|
||||
}
|
||||
|
||||
|
||||
void winix_tz_tab_offset_sec(Info & i)
|
||||
{
|
||||
if( tz_index < system->time_zones.Size() )
|
||||
i.out << system->time_zones[tz_index].time_zone.tz_offset;
|
||||
TimeZone * tz = system->time_zones.GetZoneByIndex(tz_index);
|
||||
|
||||
if( tz )
|
||||
i.out << tz->offset;
|
||||
}
|
||||
|
||||
|
||||
void winix_tz_tab_offset_hour_min(Info & i)
|
||||
{
|
||||
if( tz_index < system->time_zones.Size() )
|
||||
TimeZone * tz = system->time_zones.GetZoneByIndex(tz_index);
|
||||
|
||||
if( tz )
|
||||
{
|
||||
time_t offset = system->time_zones[tz_index].time_zone.tz_offset;
|
||||
time_t offset = tz->offset;
|
||||
|
||||
if( offset < 0 )
|
||||
{
|
||||
@@ -379,65 +384,31 @@ void winix_tz_tab_offset_hour_min(Info & i)
|
||||
}
|
||||
|
||||
|
||||
void winix_tz_tab_has_dst(Info & i)
|
||||
|
||||
static size_t locale_id;
|
||||
|
||||
void winix_locale_tab(Info & i)
|
||||
{
|
||||
if( tz_index < system->time_zones.Size() )
|
||||
i.res = system->time_zones[tz_index].time_zone.tz_has_dst;
|
||||
locale_id = i.iter;
|
||||
i.res = locale_id < locale.Size();
|
||||
}
|
||||
|
||||
|
||||
void winix_tz_tab_dst_offset_sec(Info & i)
|
||||
void winix_locale_tab_id(Info & i)
|
||||
{
|
||||
if( tz_index < system->time_zones.Size() )
|
||||
i.out << system->time_zones[tz_index].time_zone.tz_dst_offset;
|
||||
if( locale_id < locale.Size() )
|
||||
i.out << Toi(locale.GetByIndex(L"winix_locale_id", locale_id));
|
||||
}
|
||||
|
||||
|
||||
void winix_tz_tab_dst_offset_hour_min(Info & i)
|
||||
void winix_locale_tab_name(Info & i)
|
||||
{
|
||||
if( tz_index < system->time_zones.Size() )
|
||||
{
|
||||
time_t offset = system->time_zones[tz_index].time_zone.tz_dst_offset;
|
||||
|
||||
if( offset < 0 )
|
||||
{
|
||||
i.out << '-';
|
||||
offset = -offset;
|
||||
}
|
||||
else
|
||||
{
|
||||
i.out << '+';
|
||||
}
|
||||
|
||||
print_hour_min(i, offset);
|
||||
}
|
||||
if( locale_id < locale.Size() )
|
||||
i.out << locale.GetByIndex(L"locale_name", locale_id);
|
||||
}
|
||||
|
||||
|
||||
void winix_tz_tab_dst_start(Info & i)
|
||||
{
|
||||
if( tz_index < system->time_zones.Size() )
|
||||
{
|
||||
PT::Date & date = system->time_zones[tz_index].time_zone.tz_dst_start;
|
||||
|
||||
date.SerializeMonthDay(i.out);
|
||||
i.out << ' ';
|
||||
date.SerializeHourMin(i.out);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void winix_tz_tab_dst_end(Info & i)
|
||||
{
|
||||
if( tz_index < system->time_zones.Size() )
|
||||
{
|
||||
PT::Date & date = system->time_zones[tz_index].time_zone.tz_dst_end;
|
||||
|
||||
date.SerializeMonthDay(i.out);
|
||||
i.out << ' ';
|
||||
date.SerializeHourMin(i.out);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
} // namespace
|
||||
|
Reference in New Issue
Block a user