FORGEBOX Enterprise 🚀 - Take your ColdFusion (CFML) Development to Modern Times! Learn More...

ColdBox i18n Support

v1.4.0+70 Public

Build Status


This module will enhance your ColdBox applications with i18n capabilities, resource bundles and localization.


Apache License, Version 2.0.


  • Documentation:
  • Source:
  • ForgeBox:
  • Changelog


  • Lucee 4.5+
  • ColdFusion 11+


Just drop into your modules folder or use the box-cli to install

box install cbi18n

This module registers the following models in WireBox:


You can add a i18n structure of settings to your ColdBox.cfc or to any other module configuration file: ModuleConfig.cfc to configure the module:

i18n = {
    // The base path of the default resource bundle to load
    defaultResourceBundle = "includes/i18n/main",
    // The default locale of the application
    defaultLocale = "en_US",
    // The storage to use for user's locale: session, client, cookie, request
    localeStorage = "cookie",
    // The value to show when a translation is not found
    unknownTranslation = "**NOT FOUND**",
    logUnknownTranslation = true | false,
    // Extra resource bundles to load
    resourceBundles = {
        alias = "path"
    //Specify a Custom Resource Service, which should implement the methods or extend the base i18n ResourceService ( e.g. - using a database to store i18n )
    customResourceService = ""

Each module in your ColdBox Application can have its own resource bundles that can be loaded by this module.

Mixin Helpers

The module registers the following methods for handlers/layouts/views/interceptors:

* Get the user's currently set locale or default locale according to settings
function getFWLocale()

* Set the locale for a specific user
* @locale The locale to set. Must be Java Style Standard: en_US, if empty it will default to the default locale
* @dontLoadRBFlag Flag to load the resource bundle for the specified locale (If not already loaded)
* @return i18n Service
function setFWLocale( string locale="", boolean dontloadRBFlag=false )

* Retrieve a resource from a resource bundle with replacements or auto-loading
* @resource The resource (key) to retrieve from the main loaded bundle.
* @defaultValue A default value to send back if the resource (key) not found
* @locale Pass in which locale to take the resource from. By default it uses the user's current set locale
* @values An array, struct or simple string of value replacements to use on the resource string
* @bundle The bundle alias to use to get the resource from when using multiple resource bundles. By default the bundle name used is 'default'
function getResource(
    required resource,

// Alias to getResource
function $r()

You can read more about this module here:

Copyright Since 2005 ColdBox Framework by Luis Majano and Ortus Solutions, Corp | |


Because of His grace, this project exists. If you don't like this, then don't read it, its not for you.

"Therefore being justified by faith, we have peace with God through our Lord Jesus Christ: By whom also we have access by faith into this grace wherein we stand, and rejoice in hope of the glory of God. And not only so, but we glory in tribulations also: knowing that tribulation worketh patience; And patience, experience; and experience, hope: And hope maketh not ashamed; because the love of God is shed abroad in our hearts by the Holy Ghost which is given unto us. ." Romans 5:5


"I am the way, and the truth, and the life; no one comes to the Father, but by me (JESUS)" Jn 14:1-12



  • Few docuementation fixes
  • Fix implementation of getTZoffset() thanks to Seb Duggan
  • CCM-47 Case sensitivity resolved for resource service thanks to @wpdebruin
  • Updated TestBox version


  • Unified workbench
  • Encapsulation of module bundle resources


  • Varscoping fixes
  • Travis updates


  • Implements the ability to add a custom Resource Service for distributed i18n
  • Fixes issues with non-ISO characters in properties files


  • New configuration setting for logging when no translation is found logUnknownTranslation
  • Adding Travis CI support


  • Updated build process
  • Updated docs and instructions


  • Fixes on getRBKeys() and getRBString() to load correct file paths.


  • production ignore lists
  • Unloading of helpers


  • Create first module version

Here are all the versions for this package. Please note that you can leverage CommandBox package versioning to install any package you like. Please refer to our managing package version guide for more information.

Version Created Last Update Published By Stable Actions
1.5.0-snapshot Mar 01 2018 03:19 PM Mar 01 2018 03:19 PM
Version History
1.4.0+70 Mar 01 2018 03:12 PM Mar 01 2018 03:12 PM
1.4.0-snapshot Mar 01 2018 03:11 PM Mar 01 2018 03:11 PM
1.3.2+63 Mar 21 2017 04:36 PM Mar 21 2017 04:36 PM
1.3.2-snapshot Mar 21 2017 04:23 PM Mar 01 2018 10:59 AM
1.3.1+56 Nov 02 2016 05:11 PM Nov 02 2016 05:11 PM
1.3.0+47 Oct 10 2016 07:33 AM Oct 10 2016 07:33 AM
1.3.0+44 Oct 08 2016 04:53 PM Oct 08 2016 04:53 PM
1.3.0+00019 Oct 08 2016 03:52 PM Oct 08 2016 03:52 PM
1.2.0 May 09 2014 09:24 PM Jun 10 2016 06:57 AM


No collaborators yet.
  • May 09 2014 09:24 PM
  • Mar 01 2018 03:19 PM
  • 3598
  • 3267
  • 52949