Click here to Skip to main content
15,885,856 members
Articles / Desktop Programming / WPF
Tip/Trick

Multilanguage Switcher from File WPF

Rate me:
Please Sign up or sign in to vote.
5.00/5 (5 votes)
3 Nov 2013CPOL 10.4K   412   8  
Multi Language Switcher Dynamically written in WPF VB.NET using XMLDataProvider

Introduction

This post is about a multi language switcher dynamically written in WPF VB.NET using XMLDataProvider:

Using the Code

VB.NET
Private Sub limbiSwitch_SelectionChanged(sender As Object, e As SelectionChangedEventArgs)
       Dim combo_switcher As ComboBox = DirectCast(sender, ComboBox)
       Dim e1 As XmlElement = TryCast(langSwitcher.SelectedItem, XmlElement)
       If e1 IsNot Nothing Then
           Dim result1 As XmlAttribute = TryCast(e1.Attributes("file"), XmlAttribute)
           If result1 IsNot Nothing Then
               Dim lang_filename As String = result1.Value
               If lang_filename IsNot selected_language Then
                   Dim provider = DirectCast(Me.Resources("Lang"), XmlDataProvider)
                   Dim lang_url As String = AppDomain.CurrentDomain.BaseDirectory() + _
                   "languages\" + lang_filename
                   If Not System.IO.File.Exists(lang_url) Then
                       Return
                   End If
                   provider.Source = New Uri(lang_url)
                   provider.Refresh()
               End If
           End If
       End If
   End Sub

Language names and translated words are loaded dynamically from XML files.

languages.xml

XML
 <?xml version="1.0" encoding="utf-8"?>
<languages>
<language nume="English" file="en.xml" imagine="England.png" />
<language nume="Româna" file="ro.xml" imagine="Romania.png" />
<language nume="Dutch" file="de.xml" imagine="Germany.png" />
</languages> 

en.xml

XML
<?xml version="1.0" encoding="utf-8"?>
<language descriere="English" ietf="en-US" version="0.8.1">
  <resources>
        <resource nume="hi">Hello, this is a test message.</resource>
</resources>
</language>

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)


Written By
Romania Romania
This member has not yet provided a Biography. Assume it's interesting and varied, and probably something to do with programming.

Comments and Discussions

 
-- There are no messages in this forum --