Custom Resource Services
component
name="MyCustomResourceService"
extends="cbi18n.models.ResourceService"
singleton=true{
property name="Controller" inject="coldbox";
property name="Wirebox" inject="wirebox";
}public void function loadBundle(
required string rbLocale=VARIABLES.i18n.getfwLocale()
){
var bundles = "";
// Lazy Load?
if( NOT VARIABLES.controller.settingExists("RBundles") ){
VARIABLES.controller.setSetting("RBundles",structnew());
}
//set bundles ref
bundles = VARIABLES.controller.getSetting("RBundles");
var rb = structNew();
//cache our resource bundle query
var qRb = new query( datasource=application, cachedWithin=CreateTimeSpan(0, 6, 0, 0) );
qRb.addParam( name="locale", value=arguments.rbLocale, cfsqltype="cf_sql_varchar" );
qRb.setSQL( "SELECT * from customI18nTable WHERE locale=:locale" );
var rbResult = = qRb.execute().getResult();
for( var resource in rbResult ){
rb[ resource.label ] = resource.value;
}
bundles[ arguments.rbLocale ] = rb;
}Last updated
Was this helpful?