Multilingual SSRS reports
25 Jun 2013When thinking about supporting multiple languages for SSRS reports, most people think about changing the display language of one or more of the following items:
- Labels (text boxes, axis labels, table headers, etc.)
- Dataset results
- Parameter prompts
When considering presenting SSRS reports in multiple languages, one also needs to consider where to store translations. Translations can either be:
- stored in a data source (database, cube) or resource file, either accessed directly from the report or through a service call
- retrieved from an external translation service, such as Bing Translate
In most solutions retrieving a predefined translation would be preferable to doing an automatic translation using an external translation service, since the quality of the results can be questionable. A scenario I come across often is that the external translation service is only used when a predefined translation is not available. The scenarios discussed in this series of posts do not pose any requirement on how the translation is retrieved. Reporting Services can pass the user’s language setting along. That can then be used to get the right translation.
Additionally, some of the items considered when thinking about a multilingual SSRS solution are:
- Can the report be developed once and presented in multiple languages? All of the scenarios discussed in this series provide this capability.
- Impact on report creation process. Does the solution chosen require manual activities when designing the report?
- Performance
- Implementation complexity
In this series of blog posts we talk about options for implementing multilingual SSRS reports. Below is a quick scoring of each option on the above capabilities and requirements. Of course the importance of requirements and the correct choice depends on the situation.
Each scenario will be discussed in a post in this series.
Requirement / Scenario | Assembly | Change RDL | Report Definition Customization | Custom ReportViewer |
Translate labels (textboxes, axis labels, table headers, etc.) |
Yes |
Yes |
Yes |
Yes |
Translate dataset results |
No |
Yes |
Yes |
Yes |
Translate parameter prompts |
No |
Yes |
No |
Yes |
Impact on report creation |
High |
Low |
Low |
Low |
Impact on report rendering performance |
Low |
Low |
Medium |
Medium |
Implementation complexity |
Low |
Medium |
High |
Very High |
Did I miss a requirement or solution? Please let me know!
Next time: Scenario 1: Assembly.
Do you want to jump to a specific scenario? Here you go:
Scenario 1: Assembly Scenario 2: Change RDL Scenario 3: Report Definition Customization Scenario 4: Custom ReportViewer