FR Localization
Localize your Schema ..
Workshop - FR Localization
Global organizations require analytics solutions that speak the language of their users, presenting data concepts in familiar terms that cross linguistic and cultural boundaries. In this comprehensive workshop, you'll master the art of internationalizing Mondrian ROLAP schemas through Pentaho's dynamic schema processing framework, learning how to create multilingual OLAP cubes that automatically adapt to user language preferences. You'll discover how tokenization and Java localization properties work together to transform a single schema definition into a globally accessible analytics platform that serves French, English, and potentially any language your organization requires.
In this hands-on workshop, you'll implement a complete bilingual solution by systematically tokenizing the Classic Models schema, creating language-specific property files that provide translations for every user-facing element, and configuring the Pentaho environment to process these tokens dynamically based on user locale. You'll learn the critical distinction between components, elements, and properties in the tokenization naming convention, understanding how to create systematic token patterns that maintain consistency across large schemas.
You'll discover how to leverage Java's standard localization framework through property files that map tokens to translated text, how to configure Mondrian's dynamic schema processor to perform runtime token substitution, and how to enable schema checksumming that helps Pentaho Analyzer detect changes and refresh its caches appropriately. You'll also master the deployment workflow including file placement in the correct server directories, mondrian.properties configuration, data source setup, and server restart procedures that bring your localized schema to life.
What You'll Accomplish:
Start Schema Workbench and open the Classic Models schema for localization enhancement
Understand the tokenization pattern convention using the format
%{classicmodels.[component].[element].[property]}where component identifies the schema layer (schema, dimension, hierarchy, measures), element specifies the particular object (customers, products, territory), and property indicates the attribute (caption, description)Add comprehensive tokenization to the Classic Models schema across all user-facing elements including schema description and measures caption tokens, CUSTOMERS dimension with caption, description, hierarchy tokens (allMemberCaption, caption, description), and level tokens for Territory and Customer Name
Extend tokenization to the PRODUCTS dimension with complete hierarchy and level tokens for Product Line and Vendor, plus measure tokens for Sales caption
Save the tokenized schema as ClassicModels-localized.xml and publish it to the Pentaho Server
Create the required directory structure for localization property files at /server/pentaho-server/tomcat/webapps/pentaho/WEB-INF/classes/com/pentaho/messages/
Download and deploy MondrianMessages_en.properties containing English translations for all tokens
Download and deploy MondrianMessages_fr.properties containing French translations for all tokens
Verify successful file placement by listing contents of the messages directory
Configure mondrian.properties by adding the mondrian.rolap.localePropFile property pointing to com.pentaho.messages.MondrianMessages (without language suffix)
Save the mondrian.properties configuration file
Restart the Pentaho Server to activate the dynamic schema processing configuration
Access the User Console as Admin and navigate to Manage Data Sources to verify the data source configuration includes DynamicSchemaProcessor (pointing to Mondrian's token replacement processor) and UseContentChecksum (enabling schema change detection for Pentaho Analyzer cache refreshing)
Test the localized schema by accessing Pentaho Analyzer in different language contexts to verify automatic translation
By the end of this workshop, you'll have deployed a production-ready multilingual OLAP solution that demonstrates enterprise-grade internationalization techniques. You'll understand how Mondrian's dynamic schema processing architecture separates language-specific labels from schema structure, how Java property files enable maintainable translation management by non-technical staff, and how the token substitution mechanism operates at runtime to deliver locale-appropriate experiences.
You'll have mastered the systematic approach to tokenization that ensures comprehensive coverage across dimensions, hierarchies, levels, and measures, and you'll know how to configure the Pentaho environment to support these capabilities through proper directory structure, property file placement, and mondrian.properties settings. These skills enable you to create analytics platforms that serve global audiences effectively, eliminating language barriers while maintaining a single schema definition that reduces maintenance burden and ensures consistency across all language variants.
Prerequisites: Pentaho Schema Workbench installed, Pentaho Server running with Classic Models schema deployed, admin access to Pentaho Server file system Estimated Time: 45-60 minutes
x
x
Start Schema Workbench:
Ensure Pentaho Server is running:
Ensure that the Pentaho Server is up and running (automatically started in Pentaho Lab):
Follow the steps below to configure and deploy your localized model:
Tokenized Schema
This section provides specific implementation details for localizing the Classic Models Mondrian schema. Follow these steps to deploy a fully working French-English bilingual analytics solution.
The Classic Models schema is a sample ROLAP schema based on the Classic Models sample database, featuring:
Sales cube with multiple dimensions
Customers dimension (Territory, Customer Name)
Products dimension (Product Line, Vendor)
Multiple measures (Quantity, Sales, Order Count)
Here's the tokenized Classic Models Schema:

Add the following Tokens to the Classic Models schema.
Save your schema - ClassicModels - localized.xml
Publish your schema.
Classic Models Schema - Localization Tokens Table
All tokens follow the pattern: %{classicmodels.[component].[element].[property]}
Where:
component = schema, dimension, hierarchy, or measures
element = specific name (customers, products, territory, etc.)
property = caption or description
Schema
description
%{schema.description}
Schema
measuresCaption
%{measures.caption}
Dimension: CUSTOMERS
caption
%{dimension.customers.caption}
Dimension: CUSTOMERS
description
%{dimension.customers.description}
Hierarchy: Customers
allMemberCaption
%{dimension.customers.allmember.caption}
Hierarchy: Customers
caption
%{hierarchy.customers.caption}
Hierarchy: Customers
description
%{hierarchy.customers.description}
Level: Territory
caption
%{dimension.customers.territory.caption}
Level: Territory
description
%{dimension.customers.territory.description}
Level: Customer Name
caption
%{dimension.customers.customername.caption}
Level: Customer Name
description
%{dimension.customers.customername.description}
Dimension: PRODUCTS
caption
%{dimension.products.caption}
Dimension: PRODUCTS
description
%{dimension.products.description}
Hierarchy: Products
allMemberCaption
%{dimension.products.allmember.caption}
Hierarchy: Products
caption
%{hierarchy.products.caption}
Hierarchy: Products
description
%{hierarchy.products.description}
Level: Product Line
caption
%{dimension.products.line.caption}
Level: Product Line
description
%{dimension.products.line.description}
Level: Vendor
caption
%{dimension.products.vendor.caption}
Level: Vendor
description
%{dimension.products.vendor.description}
Measure: Sales
caption
%{measures.sales.caption}
Navigate to or create the following directory.
If some folders are missing (chances are all those inside the 'classes' folder won't be present), create all missing folders manually.
Windows (Powershell):
Linux:
Download the properties files.
Copy the files into the messages folder.
Windows (Powershell):
Linux:
Check the files have been successfully copied.
Windows (Powershell):
Linux:
x
x
x
Login to the User Console as Admin > Manage Data Sources
The two following properties were added to the DataSourceInfo element.
DynamicSchemaProcessor
This property points to a fully qualified class name implementing mondrian.spi.DynamicSchemaProcessor. Dynamic schema processors are classes who filter the schema file contents and provide a filtered output to Mondrian's core. Mondrian comes with a dynamic schema processor who searches for tokens and replaces them with values from Java
localization files. As a matter of fact, it is implemented with Java's standard localized messages
framework.
UseContentChecksum
This property tells Mondrian to maintain a checksum of the schema XML and expose it through
mondrian.olap.Schema.getId(). This property is used by Pentaho Analyzer to detect changes in the schema and refresh its caches. Also note that enabling this feature will make Mondriancall the schema processor for every connection request. This means that your schema processor implementation is expected to perform caching when necessary to avoid unnecessary processing.
Last updated
Was this helpful?
