New to Telerik UI for WPFStart a free 30-day trial

Localization

Updated on Sep 24, 2025

This tutorial describes the localization support implemented in the RadDiagram elements

Localization Using ResourceManager

You can base your localization on the standard resource files provided by the .NET framework. For that purpose you will have to create a separate .ResX file for each one of the languages that your application will support.

Imagine that you want to translate your diagramming implementation into English and German. For that purpose you will have to add two new resource files to your project:

  • DiagramResources.resx—this resource file will store the English(default) resources for the grid control. Set the AccessModifier property to Public.

  • DiagramResources.de.resx—this resource file will store the German resources for the grid control. Set the AccessModifier property to No code generation.

    Rad Diagram Localization Files

Now, having the needed files, it's time to illustrate the idea and localize only the text for the group panel. For that purpose you need to create a single resource string in each one of the three resource files and translate it to the appropriate language.

Note that the name of the resource string should be the same as the resource key for the string that you are localizing. The resource key for the diagram rotation thumb tooltip is Diagram_Rotate.

For a full list of ResourceKeys, check out the LocalizationStrings section of this article.

The snapshot below shows the content of the DiagramResources.de.resx file. The resource name of the other file should be the same. The Value column will contain the translation for the appropriate language.

Rad Diagram Localization Example

The last step is to instantiate the LocalizationManager class and set its ResourceManager to the resources that have been just created (you can do this in the default constructor of the Application class).

C#
    LocalizationManager.Manager = new LocalizationManager()
    {
        ResourceManager = DiagramResources.ResourceManager
    };

If you rely on culture settings to load the right resources automatically, you have to write some code inside your application's project file. For example, if you have to support English and German languages, you can store the localized strings in Resources.resx and Resources.de.resx files. For the Resources.resx file you can set ResXFileCodeGenerator to Internal or Public and for the others - to No code generation. Then, open the project file in a text-mode and insert the code below into the section. In this way you notify the framework about the supported cultures.

XAML
	<SupportedCultures>en;de</SupportedCultures>			

Localization Using Custom Localization Manager

The other way to localize your RadDiagram is to create a class that derives from the LocalizationManager object and to override its method GetStringOverride(). The logic is pretty simple, you just have to create a switch statement and return the correct translation for each resource key, as it is shown below:

C#
    public class CustomLocalizationManager : LocalizationManager
    {
        public override string GetStringOverride(string key)
        {
            switch (key)
            {
                case "Diagram_Rotate":
                    return "Rotate";
                case "Auto_fit":
                    return "Auto Fit";
                //SettingsPane parts localization strings
                case "SettingsPane_SizeTab":
                    return "Size";
                case "SettingsPane_HomeTab":
                    return "Home";
                case "SettingsPane_Copy":
                    return "Copy";
                case "SettingsPane_Cut":
                    return "Cut";
                case "SettingsPane_Paste":
                    return "Paste";
                case "SettingsPane_Delete":
                    return "Delete";
            }
            return base.GetStringOverride(key);
        }
    }

Of course, if you don't want to hard-code your translation inside your source code, you can always use resource files:

C#
    public override string GetStringOverride(string key)
    {
        switch (key)
        {
            //----------------------
            case "Diagram_Rotate":
                return DiagramResources.Diagram_Rotate;
            //----------------------
        }
        return base.GetStringOverride(key);
    }	    

Diagram Localization Strings

In the following snapshots you can find a list of all Diagram localization strings: Rad Diagram Localization Localization Home Tab Rad Diagram Localization Localization Home Tab Arrange Rad Diagram Localization Localization Size Tab Rad Diagram Localization Localization Style Tab Rad Diagram Localization Localization Style Tab Color Rad Diagram Localization Localization Style Tab Type Rad Diagram Localization Localization Text Tab

Diagram Resource Keys

Here is a list of all of the available Resources Keys and their default values:

KeyValue
Diagram_ConnectorConnect
Diagram_ResizeResize
Diagram_RotateRotate
DiagramRibbon_AlignAlign
DiagramRibbon_AlignBottomAlign Bottom
DiagramRibbon_AlignCenterAlign Center
DiagramRibbon_AlignLeftAlign Left
DiagramRibbon_AlignMiddleAlign Middle
DiagramRibbon_AlignRightAlign Right
DiagramRibbon_AlignTopAlign Top
DiagramRibbon_ArrangeArrange
DiagramRibbon_AStarRouterAStarRouter
DiagramRibbon_AvoidConnectionOverlapAvoid Connection Overlap
DiagramRibbon_AvoidShapesAvoid Shapes
DiagramRibbon_BackgroundColorBackground Color
DiagramRibbon_BridgesBridges:
DiagramRibbon_BringForwardBring Forward
DiagramRibbon_BringToFrontBring to Front
DiagramRibbon_CellHeightCell Height
DiagramRibbon_CellWidthCell Width
DiagramRibbon_ClipboardClipboard
DiagramRibbon_ClipboardDescriptionShow the Clipboard Task options.
DiagramRibbon_ConnectionsConnections
DiagramRibbon_ConnectionTypeType
DiagramRibbon_ConnectionTypeBezierBezier
DiagramRibbon_ConnectionTypeDescriptionAutomatically organizes the diagram.
DiagramRibbon_ConnectionTypePolylinePolyline
DiagramRibbon_ConnectionTypeSplineSpline
DiagramRibbon_ConnectionTypeStraightStraight
DiagramRibbon_ConnectionTypeTitleConnection Type
DiagramRibbon_ConnectorToolConnector
DiagramRibbon_ConnectorToolDescriptionChanges the main tool to Connector Tool.
DiagramRibbon_ConnectorToolScreenTipConnector Tool
DiagramRibbon_CopyCopy
DiagramRibbon_CopyDescriptionCopy the selection and put it on the Clipboard.
DiagramRibbon_CutCut
DiagramRibbon_CutDescriptionCut the selection from the document and put it on the Clipboard.
DiagramRibbon_DeleteDelete
DiagramRibbon_DeleteDescriptionDeletes the selected items.
DiagramRibbon_DesignDesign
DiagramRibbon_DraggingDragging
DiagramRibbon_EllipseShapeEllipse
DiagramRibbon_EnableRoutingEnable Routing
DiagramRibbon_ExportExport
DiagramRibbon_ExportToHtmlExport to Html
DiagramRibbon_ExportToImageExport to Image
DiagramRibbon_FitToWindowFit to Window
DiagramRibbon_GeneralGeneral
DiagramRibbon_GeneralDescriptionGeneric actions.
DiagramRibbon_GridGrid
DiagramRibbon_GridColorGrid Color
DiagramRibbon_GroupGroup
DiagramRibbon_GroupDescriptionGroups the selected items.
DiagramRibbon_HomeTabHome
DiagramRibbon_HorizontalRulerHorizontal Ruler
DiagramRibbon_IgnoreContainersIgnore Containers
DiagramRibbon_LayoutLayout
DiagramRibbon_LayoutContainerChildrenLayout Container Children
DiagramRibbon_LayoutDescriptionAutomatically organizes the diagram.
DiagramRibbon_MainPaletteHeaderTextMetro Palette
DiagramRibbon_MindMapMind Map
DiagramRibbon_MindMapHorizontalMind Map Horizontal
DiagramRibbon_MindMapVerticalMind Map Vertical
DiagramRibbon_NavigationPaneNavigation Pane
DiagramRibbon_NewNew
DiagramRibbon_OpenOpen
DiagramRibbon_PagePage
DiagramRibbon_PastePaste
DiagramRibbon_PasteDescriptionPaste the contents of the Clipboard.
DiagramRibbon_PathToolPath
DiagramRibbon_PathToolDescriptionChanges the main tool to Path Tool.
DiagramRibbon_PathToolScreenTipPath Tool
DiagramRibbon_PencilToolPencil
DiagramRibbon_PencilToolDescriptionChanges the main tool to Pencil Tool.
DiagramRibbon_PencilToolScreenTipPencil Tool
DiagramRibbon_PointerToolPointer
DiagramRibbon_PointerToolDescriptionChanges the main tool to Pointer Tool.
DiagramRibbon_PointerToolScreenTipPointer Tool
DiagramRibbon_PrintPrint
DiagramRibbon_PropertiesProperties
DiagramRibbon_RadialRadial
DiagramRibbon_RadialTreeRadial Tree
DiagramRibbon_RectangleShapeRectangle
DiagramRibbon_RedoRedo
DiagramRibbon_ReLayoutRe-Layout
DiagramRibbon_ResizingResizing
DiagramRibbon_RotationRotation
DiagramRibbon_RouteAllRoute All
DiagramRibbon_SaveSave
DiagramRibbon_SelectionModeSelection Mode
DiagramRibbon_SendBackwardSend Backward
DiagramRibbon_SendToBackSend to Back
DiagramRibbon_SettingsTabSettings
DiagramRibbon_ShapeToolDescriptionCan be used to create rectangle, ellipse or triangle shape.
DiagramRibbon_ShapeToolScreenTipShape Tool
DiagramRibbon_ShowGridShape Tool
DiagramRibbon_SnapToGridSnap to Grid
DiagramRibbon_SnapToItemsSnap to Items
DiagramRibbon_SnapXSnap X
DiagramRibbon_SnapYSnap Y
DiagramRibbon_SugiyamaSugiyama
DiagramRibbon_TextToolText
DiagramRibbon_TextToolDescriptionChanges the main tool to Text Tool.
DiagramRibbon_TextToolScreenTipText Tool
DiagramRibbon_TipOverTip Over
DiagramRibbon_TipOverTreeTip Over Tree
DiagramRibbon_ToolboxToolbox
DiagramRibbon_ToolsTools
DiagramRibbon_ToolsDescriptionShow the Tools options.
DiagramRibbon_TreeTree
DiagramRibbon_TreeDownTree Down
DiagramRibbon_TreeLeftTree Left
DiagramRibbon_TreeRightTree Right
DiagramRibbon_TreeUpTree Up
DiagramRibbon_TriangleShapeTriangle
DiagramRibbon_UndoUndo
DiagramRibbon_UngroupUngroup
DiagramRibbon_UngroupDescriptionUngroups the selected groups.
DiagramRibbon_UseFreeConnectorsUse Free Connectors
DiagramRibbon_VerticalRulerVertical Ruler
DiagramRibbon_ViewView
DiagramRibbon_ZoomZoom
PrintPreview_PrintPrint
PrintPreview_PrinterPrinter:
PrintPreview_SettingsSettings
PrintPreview_AdjustToAdjust to:
PrintPreview_DiagramPositionDiagram position:
PrintPreview_FitToFit to:
PrintPreview_PagesHorizontallypages horizontally
PrintPreview_PagesVerticallypages vertically
PrintPreview_OrientationOrientation:
PrintPreview_PaperSizePaper size: