New to Telerik ReportingStart a free 30-day trial

Localization of the React Report Viewer

The article elaborates on how to localize the messages displayed by the React Report Viewer.

  1. To localize the report viewer, create a new TypeScript file stringResources.ts:

    TS
    export class StringResources {
        static english = {
            loadingReport: 'Loading...',
            // override other string resources here
        }
        static japanese = {
            loadingReport: 'ちょっと、まってください...',
            // override other string resources here
        }
        // override string resources for other cultures here
    }

    The file can contain all or only a part of the string resources which would be localized. For a full list of the report viewer string resources which could be localized, please refer to HTML5 Report Viewer Localization.

  2. Import the new file in the component where the viewer is used:

    TS
    import { StringResources } from './stringResources';
  3. Use the useEffect hook to extend the viewer object with the string resources for the desired culture after the component has mounted:

    JSX
    export function ReportViewer() {
    
        const viewerRef = useRef(null);
        const [language, setLanguage] = useState(navigator.language);
        const reportSource = { report: 'Dashboard.trdx', parameters: {} };
        const viewerContainerStyle = { position: 'absolute', inset: '5px', fontFamily: 'ms sans serif' };
    
        useEffect(() => {
            if (viewerRef) {
                const { viewerObject } = viewerRef.current;
                switch (language) {
                    case "ja":
                        viewerObject.stringResources = Object.assign(viewerObject.stringResources, StringResources.japanese);
                        break;
                    default:
                        viewerObject.stringResources = Object.assign(viewerObject.stringResources, StringResources.english);
                        break;
                }
            }
        }, [language])
    
        return (
            <TelerikReportViewer ref={viewerRef}
                serviceUrl="https://demos.telerik.com/reporting/api/reports/"
                reportSource={reportSource}
                viewerContainerStyle={viewerContainerStyle}
                viewMode="INTERACTIVE"
                scaleMode="SPECIFIC"
                scale={1.0}
                enableAccessibility={false} />)
    }

See Also

In this article
See Also
Not finding the help you need?
Contact Support