225 lines
6.4 KiB
Ucode
225 lines
6.4 KiB
Ucode
//=============================================================================
|
|
/// 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
|
|
}
|
|
*/
|