Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 6 additions & 3 deletions system/helpers/numberUtils.cfm
Original file line number Diff line number Diff line change
@@ -1,9 +1,12 @@
<cffunction name="presideStandardNumberFormat" access="public" returntype="string" output="false">
<cfargument name="number" type="numeric" required="true" /><cfsilent>
<cfargument name="number" type="numeric" required="true" />
<cfargument name="mask" type="string" required="false" default="" />
<cfargument name="locale" type="string" required="false" default="" /><cfsilent>

<cfscript>
var decimalPlaces = len( listRest( arguments.number, "." ) );
var numberFormat = decimalPlaces ? ",.#repeatString( "_", decimalPlaces )#" : ",";
var resolvedMask = Len( arguments.mask ) ? arguments.mask : getSingleton( "numberFormatService" ).getNumberFormatMask( arguments.locale );
var decimalPlaces = Len( ListRest( arguments.number, "." ) );
var numberFormat = decimalPlaces ? "#resolvedMask#.#RepeatString( '_', decimalPlaces )#" : resolvedMask;
</cfscript>

<cfreturn lsNumberFormat( arguments.number, numberFormat ) />
Expand Down
39 changes: 39 additions & 0 deletions system/services/l10n/NumberFormatService.cfc
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
/**
* @singleton true
* @presideService true
*/
component {

public any function init() {
return this;
}

public string function getNumberFormatMask( string locale="" ) {
var resolvedLocale = Len( Trim( arguments.locale ) ) ? Trim( arguments.locale ) : _getSiteLocale();

switch ( resolvedLocale ) {
Comment thread
pixl8-brayden marked this conversation as resolved.
case "en_GB":
case "en_US":
return ",";
}

return "_";
}

// PRIVATE HELPERSs
private string function _getSiteLocale() {
var siteId = $getRequestContext().getSiteId();

if ( Len( siteId ) ) {
var settings = $getPresideObject( "site" ).selectData(
id = siteId
, returntype = "singleRecordStruct"
, selectFields = [ "locale" ]
);

return settings.locale ?: "en_GB";
}

return "en_GB";
}
}
Loading