Localization Support in Windows Forms Ribbon (RibbonControlAdv)

4 Feb 202520 minutes to read

RibbonControlAdv now supports adaptation of its controls and its details to meet different languages and cultural requirements. This involves configuring the ribbon to a specific language.

Adding ILocalizationProvider

  1. Include the required namespaces at the beginning of the source file.

  2. Create a class that implements the ILocalizationProvider interface defined in the Syncfusion.Windows.Forms namespace in the Syncfusion.Shared.Base.dll.

  3. Return the localized versions of the strings corresponding to the string identifiers.

  4. String identifiers are defined in the ToolsResourceIdentifier classes in Syncfusion.Tools.Windows

using Syncfusion.Windows.Forms.Tools;
Imports Syncfusion.Windows.Forms.Tools
  1. Leave an empty string for the rest of the identifiers that are not involved in the localization. These identifiers are loaded with a default value.

  2. Assign this instance to the Provider property of the LocalizationProvider class before the InitializeComponent call in the constructor of the application.

LocalizationProvider.Provider = new localization();
LocalizationProvider.Provider = New localization()
  1. The Following is an example for localization
class localization : ILocalizationProvider
    {

        public string GetLocalizedString(System.Globalization.CultureInfo culture, string stringname, object obj)
        {

            switch (stringname)
            {

                case ToolsResourceIdentifiers.CustomizeRibbonDialogButtonAdd:
                    return "添加";
                case ToolsResourceIdentifiers.CustomizeRibbonDialogButtonRemove:
                    return "移除";
                case ToolsResourceIdentifiers.CustomizeRibbonDialogButtonCancel:
                    return "取消";
                case ToolsResourceIdentifiers.CustomizeRibbonDialogButtonOk:
                    return "确定";
                case ToolsResourceIdentifiers.CustomizeRibbonDialogButtonReset:
                    return "重置";
                case ToolsResourceIdentifiers.CustomizeRibbonDialogLabel:
                    return "自定义功能区";
                case ToolsResourceIdentifiers.CustomizeRibbonDialogChooseCommands:
                    return "选择命令";
                case ToolsResourceIdentifiers.CustomizeRibbonDialogMainTab:
                    return "主选项卡";
                case ToolsResourceIdentifiers.CustomizeRibbonDialogButtonNewGroup:
                    return "新建组";
                case ToolsResourceIdentifiers.CustomizeRibbonDialogButtonNewTab:
                    return "新建选项卡";
                case ToolsResourceIdentifiers.CustomizeRibbonDialogButtonRename:
                    return "重命名";
                case ToolsResourceIdentifiers.CustomizeRibbonDialogCustomizationLabel:
                    return "自定义选项";
                case ToolsResourceIdentifiers.CustomizeRibbonDialogCaption:
                    return "自定义功能区";
                case ToolsResourceIdentifiers.CustomizeQuickAccessLabel:
                    return "快速访问工具栏";
                case ToolsResourceIdentifiers.QuickAccessCustomizeMenu:
                    return "自定义快速访问工具栏";
                case ToolsResourceIdentifiers.QuickAccessAddItem:
                    return "添加项目";

                case ToolsResourceIdentifiers.QuickAccessDialogButtonAdd:
                    return "添加";
                case ToolsResourceIdentifiers.QuickAccessDialogButtonCancel:
                    return "取消";
                case ToolsResourceIdentifiers.QuickAccessDialogButtonOk:
                    return "确定";
                case ToolsResourceIdentifiers.QuickAccessDialogButtonReset:
                    return "重置";
                case ToolsResourceIdentifiers.QuickAccessDialogButtonRemove:
                    return "移除";
                case ToolsResourceIdentifiers.QuickAccessMinimizeTheRibbon:
                    return "最小化功能区";
                case ToolsResourceIdentifiers.QuickAccessPlaceAboveRibbon:
                    return "放置于功能区上方";
                case ToolsResourceIdentifiers.QuickAccessPlaceBelowRibbon:
                    return "放置于功能区下方";
                case ToolsResourceIdentifiers.QuickAccessToolBarLabel:
                    return "快速访问工具栏";


                case ToolsResourceIdentifiers.CustomizeRibbonDialogRenameCancelButton:
                    return "取消";
                case ToolsResourceIdentifiers.CustomizeRibbonDialogRenameCaption:
                    return "重命名";
                case ToolsResourceIdentifiers.CustomizeRibbonDialogRenameOkButton:
                    return "确定";
                case ToolsResourceIdentifiers.CustomizeRibbonRenameDisplayLabel:
                    return "显示名称";

                case ToolsResourceIdentifiers.CustomizationLabel:
                    return "自定义";
                case ToolsResourceIdentifiers.CustomizeMenu:
                    return "自定义";
                case ToolsResourceIdentifiers.QuickAccessDialogDropDownName:
                    return "快速访问下拉菜单";
                case ToolsResourceIdentifiers.QuickAccessCustomizeCaption:
                    return "快速访问工具栏";
                case ToolsResourceIdentifiers.QuickAccessDialogCommands:
                    return "命令";
                case ToolsResourceIdentifiers.CustomizeRibbonDialogColumnHeader:
                    return "列标题";

                case ToolsResourceIdentifiers.CustomMenu:
                    return "自定义菜单";
                case ToolsResourceIdentifiers.QuickAccessDialogCustomizeRibbon:
                    return "自定义功能区";
                
                default:
                    return string.Empty;

            }
        }
    }
Class localization
    Inherits ILocalizationProvider

    Public Function GetLocalizedString(ByVal culture As System.Globalization.CultureInfo, ByVal stringname As String, ByVal obj As Object) As String
        Select Case stringname
            Case ToolsResourceIdentifiers.CustomizeRibbonDialogButtonAdd
                Return "添加"
            Case ToolsResourceIdentifiers.CustomizeRibbonDialogButtonRemove
                Return "移除"
            Case ToolsResourceIdentifiers.CustomizeRibbonDialogButtonCancel
                Return "取消"
            Case ToolsResourceIdentifiers.CustomizeRibbonDialogButtonOk
                Return "确定"
            Case ToolsResourceIdentifiers.CustomizeRibbonDialogButtonReset
                Return "重置"
            Case ToolsResourceIdentifiers.CustomizeRibbonDialogLabel
                Return "自定义功能区"
            Case ToolsResourceIdentifiers.CustomizeRibbonDialogChooseCommands
                Return "选择命令"
            Case ToolsResourceIdentifiers.CustomizeRibbonDialogMainTab
                Return "主选项卡"
            Case ToolsResourceIdentifiers.CustomizeRibbonDialogButtonNewGroup
                Return "新建组"
            Case ToolsResourceIdentifiers.CustomizeRibbonDialogButtonNewTab
                Return "新建选项卡"
            Case ToolsResourceIdentifiers.CustomizeRibbonDialogButtonRename
                Return "重命名"
            Case ToolsResourceIdentifiers.CustomizeRibbonDialogCustomizationLabel
                Return "自定义选项"
            Case ToolsResourceIdentifiers.CustomizeRibbonDialogCaption
                Return "自定义功能区"
            Case ToolsResourceIdentifiers.CustomizeQuickAccessLabel
                Return "快速访问工具栏"
            Case ToolsResourceIdentifiers.QuickAccessCustomizeMenu
                Return "自定义快速访问工具栏"
            Case ToolsResourceIdentifiers.QuickAccessAddItem
                Return "添加项目"
            Case ToolsResourceIdentifiers.QuickAccessDialogButtonAdd
                Return "添加"
            Case ToolsResourceIdentifiers.QuickAccessDialogButtonCancel
                Return "取消"
            Case ToolsResourceIdentifiers.QuickAccessDialogButtonOk
                Return "确定"
            Case ToolsResourceIdentifiers.QuickAccessDialogButtonReset
                Return "重置"
            Case ToolsResourceIdentifiers.QuickAccessDialogButtonRemove
                Return "移除"
            Case ToolsResourceIdentifiers.QuickAccessMinimizeTheRibbon
                Return "最小化功能区"
            Case ToolsResourceIdentifiers.QuickAccessPlaceAboveRibbon
                Return "放置于功能区上方"
            Case ToolsResourceIdentifiers.QuickAccessPlaceBelowRibbon
                Return "放置于功能区下方"
            Case ToolsResourceIdentifiers.QuickAccessToolBarLabel
                Return "快速访问工具栏"
            Case ToolsResourceIdentifiers.CustomizeRibbonDialogRenameCancelButton
                Return "取消"
            Case ToolsResourceIdentifiers.CustomizeRibbonDialogRenameCaption
                Return "重命名"
            Case ToolsResourceIdentifiers.CustomizeRibbonDialogRenameOkButton
                Return "确定"
            Case ToolsResourceIdentifiers.CustomizeRibbonRenameDisplayLabel
                Return "显示名称"
            Case ToolsResourceIdentifiers.CustomizationLabel
                Return "自定义"
            Case ToolsResourceIdentifiers.CustomizeMenu
                Return "自定义"
            Case ToolsResourceIdentifiers.QuickAccessDialogDropDownName
                Return "快速访问下拉菜单"
            Case ToolsResourceIdentifiers.QuickAccessCustomizeCaption
                Return "快速访问工具栏"
            Case ToolsResourceIdentifiers.QuickAccessDialogCommands
                Return "命令"
            Case ToolsResourceIdentifiers.CustomizeRibbonDialogColumnHeader
                Return "列标题"
            Case ToolsResourceIdentifiers.CustomMenu
                Return "自定义菜单"
            Case ToolsResourceIdentifiers.QuickAccessDialogCustomizeRibbon
                Return "自定义功能区"
            Case Else
                Return String.Empty
        End Select
    End Function
End Class

Localization-Support_img1

Ribbon Resource Identifier

String

Description

CustomizeRibbonDialogButtonAdd

`Add` button to add selected item in Customize Ribbon window

CustomizeRibbonDialogButtonRemove

`Remove` button to remove selected item in Customize Ribbon window

CustomizeRibbonDialogButtonCancel

`Cancel` button to cancel the changes in Customize Ribbon window

CustomizeRibbonDialogButtonOk

`Ok` button to save the changes in Customize Ribbon window

CustomizeRibbonDialogButtonReset

`Reset` button to reset all the customizations in Customize Ribbon window

CustomizeRibbonDialogLabel

Main `Customize the Ribbon` label in Customize Ribbon window

CustomizeRibbonDialogChooseCommands

`Choose Commands from` combo box header

CustomizeRibbonDialogMainTab

`Customize Ribbon` tab header in left panel in Customize window

CustomizeRibbonDialogButtonNewGroup

`New Group` button to add new group in Customize Ribbon window

CustomizeRibbonDialogButtonNewTab

`New Tab` button to add new tab in Customize Ribbon window

CustomizeRibbonDialogButtonRename

`Rename` button to rename selected item in customize Ribbon window

CustomizeRibbonDialogCustomizationLabel

`Customizations` label in customize ribbon window

CustomizeRibbonDialogCaption

Caption in customize ribbon window

CustomizeQuickAccessLabel

Main label in customize QAT

QuickAccessCustomizeMenu

Customize menu in quick access

QuickAccessAddItem

Add Item label in quick access

QuickAccessDialogButtonAdd

`Add` button to add selected item in Customize QAT window

QuickAccessDialogButtonCancel

`Cancel` button to cancel the changes in Customize QAT window

QuickAccessDialogButtonOk

`Ok` button to save the changes in Customize QAT window

QuickAccessDialogButtonReset

`Reset` button to reset all the customizations in Customize QAT window

QuickAccessDialogButtonRemove

`Remove` button to remove selected item in Customize QAT window

QuickAccessMinimizeTheRibbon

MinimizeTheRibbon option in quick access

QuickAccessPlaceAboveRibbon

PlaceAboveRibbon option in quick access

QuickAccessPlaceBelowRibbon

PlaceBelowRibbon option in quick access

QuickAccessToolBarLabel

QAT label

CustomizeRibbonDialogRenameCancelButton

`Cancel’ button in Rename popup window

CustomizeRibbonDialogRenameCaption

Rename caption in rename popup window

CustomizeRibbonDialogRenameOkButton

`Ok` button in rename popup window

CustomizeRibbonRenameDisplayLabel

Display Name label in rename popup window

CustomizationLabel

Customization label in window

CustomizeMenu

Customize menu option

QuickAccessDialogDropDownName

Drop down name in quick access dialog

QuickAccessCustomizeCaption

Customize caption in customizing QAT.

QuickAccessDialogCommands

Commands dialog in quick access

CustomizeRibbonDialogColumnHeader

Column header in Customize ribbon

CustomMenu

Custom menu label

QuickAccessDialogCustomizeRibbon

Quick access dialog in customize ribbon window

Right To Left

In Right To Left support, RibbonControlAdv aligns all its controls from right To left when the ribbon property `RightToLeft’ is set to Yes.

this.ribbonControlAdv1.RightToLeft = RightToLeft.Yes;
this.ribbonControlAdv1.RightToLeft = RightToLeft.Yes;

Localization-Support_img2