unit ABSLocale;

interface

{$I ABSVer.inc}

uses SysUtils;

type

 TABSLocaleRecord = packed record
    // Numbers
    DecimalSeparator: AnsiString{$ifndef D16H}[3]{$endif};   // (.)   123.45
    NoOfDigistsAfterDecimal: Byte; // (2)   123.45
    DigitGroupingSymbol: AnsiString{$ifndef D16H}[3]{$endif};// (,)   123,456.78
    DigitGrouping: Byte;           // 0 - nogroup
                                   // 2 - 12,34,56.78
                                   // 3 - 123,456.78
    NegativeSignSymbol: AnsiString{$ifndef D16H}[5]{$endif}; // (-)
    NegativeNumberFormat: Byte;    // 0 = (1.1)
                                   // 1 = -1.1
                                   // 2 = - 1.1
                                   // 3 = 1.1-
                                   // 4 = 1.1 -
    DisplayLeadingZeros: ByteBool; // .7 or 0.7
    ListSeparator: AnsiString{$ifndef D16H}[3]{$endif};      // (,)
    MeasurementSystem: Byte;       // 0 - US;  1 - Metric

    //Currency
    CurrencySymbol: AnsiString{$ifndef D16H}[5]{$endif};     // ($)
    PositiveCurrencyFormat: Byte;  // 0 = $1.1
                                   // 1 = 1.1$
                                   // 2 = $ 1.1
                                   // 3 = 1.1 $
    NegativeCurrencyFormat: Byte;  // 0  = ($1.1)
                                   // 1  = -$1.1
                                   // 2  = $-1.1
                                   // 3  = $1.1-
                                   // 4  = (1.1$)
                                   // 5  = -1.1$
                                   // 6  = 1.1-$
                                   // 7  = 1.1$-
                                   // 8  = -1.1 $
                                   // 9  = -$ 1.1
                                   // 10 = 1.1 $-
                                   // 11 = $ 1.1-
                                   // 12 = $ -1.1
                                   // 13 = 1.1- $
                                   // 14 = ($ 1.1)
                                   // 15 = (1.1 $)

    CurrencyDecimalSymbol: AnsiString{$ifndef D16H}[3]{$endif}; // (.) $100.99
    CurrencyNoOfDigistsAfterDecimal: Byte; // (2)  $123.45
    CurrencyDigitGroupingSymbol: AnsiString{$ifndef D16H}[3]{$endif};// (,)   $123,456.78
    CurrencyDigitGrouping: Byte;           // 0 - nogroup
                                           // 2 - $12,34,56.78
                                           // 3 - $123,456.78

    // Time
    TimeFormat: AnsiString{$ifndef D16H}[80]{$endif};        // hh:mm:ss ampm
    TimeSeparator: AnsiString{$ifndef D16H}[3]{$endif};      // (:)  12:30 PM
    TimeAMString: AnsiString{$ifndef D16H}[12]{$endif};      // (AM) 12:30 AM
    TimePMString: AnsiString{$ifndef D16H}[12]{$endif};      // (PM) 12:30 PM
    // Date
    TwoDigitYearCenturyWindow: Word;  // (30) 1930 - 2029
    ShortDateFormat: AnsiString{$ifndef D16H}[80]{$endif};   // (M/d/yyyy) 5/20/2003
    DateSeparator: AnsiString{$ifndef D16H}[3]{$endif};      // (/)
    LongDateFormat: AnsiString{$ifndef D16H}[80]{$endif};    // (dddd, MMMM dd, yyyy) Tuesday, May 20, 2003

//
    ShortMonthNames: array[1..12] of AnsiString;
    LongMonthNames: array[1..12] of AnsiString;
    ShortDayNames: array[1..7] of AnsiString;
    LongDayNames: array[1..7] of AnsiString;

    SysLocale: TSysLocale;

    EraNames: array[1..7] of AnsiString;
    EraYearOffsets: array[1..7] of Integer;

    ToUpperChars,ToLowerChars: array[0..255] of AnsiChar;
    ToOemChars,ToAnsiChars: array[0..255] of AnsiChar;
 end;


 TABSLocale = class(TObject)
  private

    {
    SShortMonthNameJan = 'Jan';
    SShortMonthNameFeb = 'Feb';
    SShortMonthNameMar = 'Mar';
    SShortMonthNameApr = 'Apr';
    SShortMonthNameMay = 'May';
    SShortMonthNameJun = 'Jun';
    SShortMonthNameJul = 'Jul';
    SShortMonthNameAug = 'Aug';
    SShortMonthNameSep = 'Sep';
    SShortMonthNameOct = 'Oct';
    SShortMonthNameNov = 'Nov';
    SShortMonthNameDec = 'Dec';

    SLongMonthNameJan = 'January';
    SLongMonthNameFeb = 'February';
    SLongMonthNameMar = 'March';
    SLongMonthNameApr = 'April';
    SLongMonthNameMay = 'May';
    SLongMonthNameJun = 'June';
    SLongMonthNameJul = 'July';
    SLongMonthNameAug = 'August';
    SLongMonthNameSep = 'September';
    SLongMonthNameOct = 'October';
    SLongMonthNameNov = 'November';
    SLongMonthNameDec = 'December';

    SShortDayNameSun = 'Sun';
    SShortDayNameMon = 'Mon';
    SShortDayNameTue = 'Tue';
    SShortDayNameWed = 'Wed';
    SShortDayNameThu = 'Thu';
    SShortDayNameFri = 'Fri';
    SShortDayNameSat = 'Sat';

    SLongDayNameSun = 'Sunday';
    SLongDayNameMon = 'Monday';
    SLongDayNameTue = 'Tuesday';
    SLongDayNameWed = 'Wednesday';
    SLongDayNameThu = 'Thursday';
    SLongDayNameFri = 'Friday';
    SLongDayNameSat = 'Saturday';
    }
 end;

implementation

initialization

end.
