SQL Server Reporting Services
SSRS report localization: a translated .rdl for each language.
Lingobit Localizer reads the report definition and translates the text in its text boxes: titles, column headers, labels. Expressions, queries, and layout stay as they are. For each language you get Sales_de.rdl, a complete report you deploy next to the original.
- Translated
- Static text in text boxes
- Skipped
- Expressions, queries, layout
- More text
- Tooltips, chart titles, prompts by XPath
- Output
Sales_de.rdlfor each language
On this page
What Lingobit translates in an RDL file.
By default, the Value of every text box whose text is not an expression. A value that starts with = is calculated by the report server, so it is left untouched.
<Textbox Name="Title">
...<Value>Umsatz nach Region</Value>... <!-- was "Sales by region" -->
</Textbox>
<Textbox Name="Total">
...<Value>="Total: " & Sum(Fields!Amount.Value)</Value>... <!-- an expression: not changed -->
</Textbox>
| In the report | By default |
|---|---|
| Text boxes, also in tables and matrices | Translated |
Expressions (=...) | Not changed |
| Tooltips, chart titles, parameter prompts | Not read; add them with an XPath rule (below) |
| Datasets, queries, layout, styles | Not changed |
Reports from the 2005 to 2016 schema versions are read; the report's namespace is available in XPath as defns. Client report definitions (.rdlc) for ReportViewer use the same schema: add them with the Reporting Services RDL format.
Translate tooltips, chart titles, and prompts too.
In the file's settings, on the Parser page, extend Select nodes to translate. Set the Key expression to the item's name, so translations stay matched when the report is redesigned:
Select nodes to translate:
//defns:Textbox[not(contains(.//defns:Value,'='))]//defns:Value
| //defns:Textbox/defns:ToolTip
| //defns:ChartTitle/defns:Caption
| //defns:ReportParameter/defns:Prompt
Key expression:
ancestor-or-self::*[@Name][1]/@Name
The rules are XPath 1.0, so any other element can be added the same way. See XPath patterns in the XML guide.
Steps
From Sales.rdl to a report for each language.
Add the reportsCreate a project with your target languages and add the
.rdlfiles from your report project.Set the rulesKeep the default, or extend the XPath and set the Key expression as shown above.
TranslateIn the project table, with translation memory and terminology shared with the application, or with translators through Prepare Translation Task.
Create the filesCreate Localized Files writes
Sales_de.rdl,Sales_fr.rdl, and so on; the output pattern can be changed, for example to a folder per language.DeployUpload each language's report to its folder on the report server, or ship the
.rdlcfiles with the application.Next releaseScan for Changes shows the new and changed text boxes; only those need translation.
A report per language, or one report with expressions?
A report per language fits when
- The text is typed into the report, as most reports are written.
- Each language may need its own column widths or page size.
- Users reach their reports through a folder or a link per language.
One report with expressions fits when
- A single report must switch by
User!Language. - The text already comes from a custom assembly, for example
=Code.GetString("Title"). - Then translate that assembly's resources instead: see .NET resources.
Questions.
Does Lingobit connect to the report server?
No. It works on the .rdl files, as you have them in the report project or download them from the server. Deployment stays with your tools.
Is the text in the database translated too?
Not through the report. Product names, categories, and other data text come from the database; translate them there with database localization (Enterprise).
Why is a label not in the project?
Its value contains =, which the default rule treats as an expression, or it is not a text box value. Check the element in the .rdl and add it to the XPath.
Related paths
- XML — The XPath rules behind the RDL format.
- Database — The data text your reports show.
- .NET resources — Resources of a custom report assembly.
- Supported formats — Every format and the edition that reads it.