Resource Bundles
Resource Bundles add a common method of internationalization to Mura.
rbFactory = $.siteConfig('RBFactory');
By default a site's resource bundles are located at {siteid}/includes/resourceBundles/. They follow a strict naming convention that matched the languages language and region values.
Syntax
{language}_{region}.properties
Example:
en_us.properties
If Mura cannot find a direct language and region match it will look for just a language match.
Example:
{language}.properties
Example:
en.properties
Custom Keys
If you have custom keys that you would like to deploy as part of a theme you can deploy them in a resource bundle file within your site's theme directory ({siteid}/includes/themes/{theme}/resourceBundles). You only need to add keys that are unique to your theme. All other key values will come from the default resource bundles ({siteid}/includes/resourceBundles).
For example, if your theme required a key named myCustomString and your site was using the default English resource bundle you would create a file name en.properties in your {siteID}/includes/themes/{theme}/resourceBundles directory with the following content:
myCustomString=This is my custom resource bundle key.
You could then reload Mura and have access to that key.
<cfscript> rbFactory = $.siteConfig('RBFactory'); </cfscript> <cfoutput> #rbFactory.getKey('myCustomString')#<br/> #rbFactory.getKey('comments.comments')# </cfoutput>
As a shortcut, you can also directly pull keys from an instance of the Mura Scope.
<cfoutput> #$.rbKey('myCustomString')#<br/> #$.rbKey('comments.comments')# </cfoutput>
Lookup Hierarchy
Mura has a strict look-up hierarchy that allows you to both organize your resource bundles and override base settings:
- /{SiteID}/includes/themes/{theme}/resourceBundles/{targetResourceBundle}
- /{SiteID}/includes/resourceBundles/{targetResourceBundle}
- /requirements/mura/resourceBundles/resources/{targetResourceBundle}