home *** CD-ROM | disk | FTP | other *** search
- //=============================================================================
- /// Locale: Locale management class.
- /// Not yet implemented.
- /// This is a built-in Unreal class and it shouldn't be modified.
- //=============================================================================
- class Locale
- extends Object
- transient;
-
- /*
- //
- // Information about this locale.
- //
-
- //!!System.GetLocale( language, variant, local )
- ///@reference: !!look at java getISO3Language for std 3-char language abbreviations
- var const string ISO3Language;
- var const localized string DisplayLanguage;
-
- //
- // Locale language support.
- //
-
- /// Returns the currently active language's ISO 3 language code.
- native function string GetLanguage();
-
- /// Returns the localized, human-readable display name of the ISO 3 language code Language.
- native function string GetDisplayLanguage( string Language );
-
- /// Set the current ISO 3 language. Causes all class' and objects' localized variables to be reloaded.
- native function bool SetLanguage( string NewLanguage );
-
- //
- // Locale string processing.
- //
-
- /// Convert to locale-specific uppercase.
- function string ToUpper( string S );
-
- /// Convert to locale-specific lowercase.
- function string ToLower( string S );
-
- /// Compare two strings using locale-specific sorting.
- function int Compare( string A, string B );
-
- //
- // Locale number and currency handling.
- //
-
- /// Leading and trailing percentage symbols.
- var const localized string PrePercent, PostPercent;
-
- /// Leading and trailing currency symbols.
- var const localized string PreCurrencySymbol, PostCurrencySymbol;
-
- /// Percentage scale, i.e. 100 for 100%.
- var const localized int PercentScaler;
-
- /// Number of digits between "thousands" delimitor.
- var const localized int ThousandsCount, ThousandsCountCurrency;
-
- /// Positive and negative currency indicators.
- var const localized string
- PrePositiveCurrency, PostPositiveCurrency,
- PreNegativeCurrency, PostNegativeCurrency;
-
- // Thousands delimitor.
- var const localized string ThousandsDelimitor, ThousandsDelimitorCurrency;
-
- // Decimal point.
- var const localized string Decimal, DecimalCurrency;
-
- // Decimal count.
- var const localized int DecimalCount;
-
- /// Convert a float number to a string using the locale's formatting instructions.
- function string NumberToString( float Number );
-
- /// Convert a float number to a currency string using the locale's formatting instructions.
- function string CurrencyToString( float Currency );
-
- /// Convert a fraction from 0.0-1.0 to a percentage string.
- function string PercentToString( float Fraction )
- {
- return PrePercent $ int(Fraction * PercentScaler) $ PostPercent;
- }
-
- //
- // Locale date and time support.
- //
-
- /// Human readable names of months.
- var const localized string Months[12];
-
- /// Human readable names of days-of-week.
- var const localized string DaysOfWeek[7];
-
- /// Human-readable AM/PM.
- var const localized string AMPM[2];
-
- /// Whether to display AM/PM, otherwise uses 24-hour notation.
- var const localized ShowAMPM;
-
- /// List of TimeToMap fields which should be exposed for editing in this locale.
- var const localized array<string> EditableTimeFields;
-
- /// Format string for generating human-readable time in AM/PM and 24-hour formats;
- /// may be ignored by Locale subclasses who display times using a different calendar,
- /// for example Chinese.
- var const localized string
- TimeFormatAMPM, TimeFormat24Hour,
- BriefTimeFormatAMPM, BriefTimeFormat24Hour,
- CountdownTimeFormat;
-
- /// Format string for generating human-readable dates.
- var const localized string DateFormat;
-
- /// Return a map containing time parameters suitable for formatting.
- function map<string,string> DateTimeToMap( long T )
- {
- local map<string,string> M;
- M.Set("Year", Time.GetYear(T));
- M.Set("Month", Time.GetMonth(T));
- M.Set("MonthName", Months(Time.GetMonth(T)));
- M.Set("Day", Time.GetDay(T));
- M.Set("DayName", DaysOfWeek(Time.GetDay(T)));
- M.Set("Hour24", Time.GetHour(T));
- M.Set("Hour12", Time.GetHour(T)%12);
- M.Set("AMPM", AMPM(Time.GetHour(T)/12);
- M.Set("Minute", Time.GetMinute(T));
- M.Set("Second", Time.GetSecond(T));
- M.Set("MSec", Time.GetMSec(T));
- M.Set("USec", Time.GetUSec(T));
- M.Set("NSec", Time.GetNSec(T));
- return M;
- }
-
- /// Convert a map of TimeToMap key-values to a time; returns true if successful.
- function bool MapToDateTime( map<string,string> Map, out long T )
- {
- //!!
- }
-
- /// Converts the time to a human-readable string, depending on the current locale.
- function string TimeToString( long T, bool Brief, bool Countdown )
- {
- local string S;
- if( Brief )
- {
- if( ShowAMPM ) S = BriefTimeFormatAMPM;
- else S = BriefTimeFormat24Hour,
- }
- else if( !Countdown )
- {
- if( ShowAMPM ) S = TimeFormatAMPM;
- else S = TimeFormat24Hour,
- }
- else
- {
- S = CountdownTimeFormat;
- }
- return string.Format( S, DateTimeToMap(T) );
- }
-
- // Convert the date to a human-readable string, depending on the current locale.
- function string DateToString( long T )
- {
- return string.Format( DateFormat, DateTimeToMap(T) );
- }
-
- _defaultproperties
- {
- Months(0)=January
- Months(1)=February
- Months(2)=March
- Months(3)=April
- Months(4)=May
- Months(5)=June
- Months(6)=July
- Months(7)=August
- Months(8)=September
- Months(9)=October
- Months(10)=November
- Months(11)=December
- DaysOfWeek(0)=Sunday
- DaysOfWeek(1)=Monday
- DaysOfWeek(2)=Tuesday
- DaysOfWeek(3)=Wednesday
- DaysOfWeek(4)=Thursday
- DaysOfWeek(5)=Friday
- DaysOfWeek(6)=Saturday
- AMPM(0)=AM
- AMPM(1)=PM
- TimeFormatAMPM=%Hour12:02%.%Minute:02%.%Seconds:02% %AMPM%
- TimeFormat24Hour=%Hour24:02%.%Minute:02%.%Seconds:02%
- BriefTimeFormatAMPM=%Hour12:02%.%Minute:02% %AMPM%
- BriefTimeFormat24Hour=%Hour24:02%.%Minute:02%
- CountdownTimeFormat=%Hour24:02%.%Minute:02%.%Seconds:02%
- DateFormat=%DayName% %MonthName% %Day%, %Year%
- EditableTimeFields(0)=Year
- EditableTimeFields(1)=Month
- EditableTimeFields(2)=Day
- EditableTimeFields(3)=Hour12
- EditableTimeFields(4)=AMPM
- EditableTimeFields(5)=Minute
- EditableTimeFields(6)=Second
- PreCurrencySymbol=$
- PostCurrencySymbol=
- PrePercent=
- PostPercent=%
- PercentScaler=100
- ThousandsCount=1000
- ThousandsCountCurrency=1000
- ThousandsDelimitor=","
- ThousandsDelimitorCurrency=","
- Decimal="."
- DecimalCurrency="."
- PrePositiveCurrency=
- PostPositiveCurrency=
- PreNegativeCurrency=-
- PostNegativeCurrency=
- DecimalCount=2
- }
- */
-