LogoLogo
HomeNewsSupportVideos
  • Introduction
  • Getting Started
  • What's new in 4.0
    • Known Issues
    • .NET Core Designer
    • Managed Graphics
    • Fluent Markup
    • Markdown Support
    • Upgrade from 3.x
  • Releases
    • What's new in 4.0
    • What's new in 3.5
    • What's new in 3.2
      • View Builder
      • Validation Rules
      • Enhanced Font Support
      • Design-Time Debug
    • What's new in 3.1
    • What's new in 3.0
      • FAQs
      • Update Existing Projects
      • Multi Targeting
      • Visual Studio Designer
      • Referencing Assemblies
      • Docker Support
      • Troubleshooting
      • Deployment
    • What's new in 2.5
    • What's new in 2.2
    • What's new in 2.1
    • What's new in 2.0
    • Upgrade from 1.x
  • Getting Started
    • New Project
    • Templates
    • Troubleshooting
    • License Activation
    • FAQ
    • API
    • Hybrid
    • Deployment
    • Theme Builder
  • Concepts
    • Startup
    • Configuration
    • Load Balancing
    • Designer
    • Layouts
    • Client Profiles
    • Tab Order
    • Compression
    • Embedded Resources
    • Modal Workflow
    • Localization
    • RightToLeft
    • Background Tasks
    • Real Time Web Applications
    • JavaScript
    • JavaScript Object Model
    • Security
    • Synchronization
    • Session Management
    • Theming
    • Dependency Injection
    • Application Switches
    • Visual Studio Code
  • Controls & Components
    • General
      • Application
      • AutoSizing
      • AutoScroll
      • AutoScaling
      • Accessibility
      • Colors & Fonts
      • Embedded Tools
      • Events
      • Touch Events
      • Images
      • Labels
      • ToolTips
      • Data Binding
      • Common Properties
      • Custom Painting
      • Move & Resize
      • Drag & Drop
      • Validation
      • User Data
      • Responsive Properties
      • VB.NET Extensions
    • Common Dialogs
      • FolderBrowserDialog
      • ColorDialog
      • OpenFileDialog
      • SaveFileDialog
    • Editors
      • TextBox
        • TagTextBox
        • MaskedTextBox
        • TypedTextBox
      • DateTimePicker
      • MonthCalendar
      • TimeUpDown
      • DomainUpDown
      • NumericUpDown
      • TrackBar
    • Buttons
      • Button
      • SplitButton
      • CheckBox
      • RadioButton
    • Containers
      • Page
      • Form
      • Desktop
      • Panel
      • FlexLayoutPanel
      • FlowLayoutPanel
      • TableLayoutPanel
      • GroupBox
      • Accordion
      • TabControl
      • UserPopup
      • UserControl
      • ToolBar
      • StatusBar
      • SplitContainer
      • SlideBar
    • Lists & Grids
      • ComboBox
        • UserComboBox
        • TreeViewComboBox
        • ListViewComboBox
      • ListBox
        • CheckedListBox
      • TreeView
      • ListView
      • DataGridView
        • Column
        • TextBoxColumn
        • ButtonColumn
        • LinkColumn
        • ImageColumn
        • MaskedTextBoxColumn
        • DateTimePickerColumn
        • NumericUpDownColumn
        • CheckBoxColumn
        • ComboBoxColumn
      • DataRepeater
      • PropertyGrid
    • Extenders
      • Animation
      • ToolTip
      • ErrorProvider
      • Rotation
      • StyleSheet
      • JavaScript
    • Media
      • Audio
      • Video
      • FlashPlayer
    • Content
      • Label
      • LinkLabel
      • PictureBox
      • ScrollBars
      • Upload
      • AspNetPanel
      • ImageList
      • PdfViewer
      • ProgressBar
      • Spacer
      • Widget
      • WebBrowser
      • IFramePanel
      • HtmlPanel
      • Canvas
      • Shape
      • Line
    • Menus
      • MainMenu
      • MenuBar
      • MenuItem
      • LinkMenuItem
      • ContextMenu
    • Notifications
      • AlertBox
      • MessageBox
      • Toast
    • Other Components
      • Timer
      • BindingSource
      • BindingNavigator
      • DataSet
      • EventLog
      • MessageQueue
      • PerformanceCounter
Powered by GitBook
On this page
  • Localizing the UI
  • Localizing the System
  • Built-in Formats
  • Localizing Resources
  • Detecting/Switching Browser Language

Was this helpful?

Export as PDF
  1. Concepts

Localization

PreviousModal WorkflowNextRightToLeft

Last updated 5 months ago

Was this helpful?

Wisej.NET fully supports localization using .NET and Visual Studio standard localization features.

{% file src="../.gitbook/assets/wisej.localization.zip" caption="Download Wisej.Localization.zip" %}

Localizing the UI

All top-level controls in Wisej.NET support UI localization.

To enable localization features for a Form, Page, UserControl, or Desktop component:

  1. In design mode, set the Localizable property to true

  2. Once enabled, you can switch languages in the designer

Use the Language dropdown property to select the language for localization:

UI localization allows changing multiple properties per language switch, commonly:

  • Size

  • Location

  • Text

  • Colors

  • Images

Localizing the System

Wisej.NET supports full localization of system resources including:

  • MessageBox buttons

  • Calendar control labels (month/day names)

  • Standard numeric, percentage and currency formatting/parsing

Built-in Formats

  • Numeric, Percentage, Date, and Currency

    Handled automatically for all supported languages worldwide.

  • Date Labels: Months and Day Names

    Handled automatically for all supported languages worldwide.

  • System Resources

    Wisej.NET system resources are localized in:

    • English

    • German

    • French

    • Italian

    • Turkish

    • Spanish

    • Portuguese

    For other languages, create a Resources-[LANG].resx file in either:

    • Root project folder

    • /Resources folder

    Add localization labels as needed. See How to: Create a Localized Resource File.

    Label
    Description
    Default Value

    $Ok

    OK Button in MessageBox/system dialogs

    OK

    $Cancel

    Cancel Button in MessageBox/system dialogs

    Cancel

    $Yes

    Yes Button in MessageBox/system dialogs

    Yes

    $No

    No Button in MessageBox/system dialogs

    No

    $Retry

    Retry Button in MessageBox/system dialogs

    Retry

    $Ignore

    Ignore Button in MessageBox/system dialogs

    Ignore

    $Abort

    Abort Button in MessageBox/system dialogs

    Abort

    $Next year

    Next-year navigation tooltip in calendar controls

    Next Year

    $Next month

    Next-month navigation tooltip in calendar controls

    Next Month

    $Last year

    Last-year navigation tooltip in calendar controls

    Last Year

    $Last month

    Last-month navigation tooltip in calendar controls

    Last Month

    $Offline

    Offline connectivity loss notification

    Offline

Localizing Resources

Beyond system localization, you'll likely need to localize application resources (strings, images, etc.).

Create .resx files as needed using the approach above. See How to: Create a Localized Resource File.

Use the ResourceManager class to retrieve localized values. Wisej.NET handles thread culture switching for client requests.

var RS = new ResourceManager("Localization.Resources", this.GetType().Assembly);
var title = RS.GetString("Title");
Dim RS as ResourceManager = new ResourceManager("Localization.Resources", Me.GetType().Assembly)
Dim title as String = RS.GetString("Title")

Detecting/Switching Browser Language

Wisej.NET automatically detects browser language and switches application/system resources accordingly.

You can force a specific language for the application (user session) by:

  1. Setting the culture property in Default.json (default is "auto"). See Configuration.

  2. Using one of these methods:

    • Assign Application.CurrentCulture property

    • Add lang URL parameter (e.g., http://localhost/myapp?lang=de for German)

When current culture changes from the session's initial culture, Wisej.NET raises the Application.CultureChanged event.

Designer-localized controls update only at creation. No built-in mechanism exists to change already-created controls. To update existing controls either:

  • Re-create the container and call InitializeControl

  • Write custom code to reapply resources

Language selection dropdown