Broadleaf provides features for internationalization including:
Support for Data Translations
Ability to control labels and static text
Locale specific pricing
Currency conversion
Translation mode for direct entity maintenance for translated values
Broadleaf Services including Catalog, Offers, Menu, and others provide facilities for managing translated data values for fields like the product name and description. This is described in more detail in the Data Translations article.
For operations dealing with Money, Broadleaf services rely on a shared library. See Money for more information.
The Pricing Service includes capabilities to store Locale specific price lists and to convert from one currency to another.
The Offer Service can be restricted to a specific locale to support amount off type offers. For example, if an offer was "5 off", the offer service doesn’t know what currency the "5" stands for. If the intent is to only offer this in a specific geography or pricing context, then the offer can be restricted using a rule.
Broadleaf can be used with any currency supported by Java. The tenant and application domains within Broadleaf are used to control the relevant locales and currencies for a specific implementation.
Generally, a client should consider Tenant level data to be global and Application level data to represent settings that are appropriate for an Application (Site).
The Tenant Services domain provides data elements for storing allowed locales, allowed currencies, default locale, and default currency.
The application domain also provides these fields for managing values at the application (site) level.
These fields can be used by your applications to drive end user selection of preferred locales and currencies.
For entities with translation support, field level translations views and edits can be enabled through the admin. See Admin Translation Features.