Click here to Skip to main content
15,894,343 members
Articles / Web Development / ASP.NET

Creating Multilingual Websites - Part 1

Rate me:
Please Sign up or sign in to vote.
4.75/5 (80 votes)
25 Aug 200410 min read 519.9K   21.3K   291  
Extend the existing globalization capabilities of .NET to create flexible and powerful multilgual web sites. First, create a custom ResourceManager, and then create custom localized-capable server controls to easily deploy multilingual functionality.
using System.Configuration;
using System.Xml;

namespace Localization {
   /// <summary>
   ///     Strongly-typed configuration settings
   /// </summary>
   /// <remarks>
   ///     Loads the Localization section of the configuration file (web.config), 
   ///     and makes the settings globally accessible.
   /// </remarks>
   public class LocalizationConfiguration {
      #region fields and properties
      private string defaultCultureName;
      private string languageFilePath;

      /// <summary>
      ///     Default culture to use
      /// </summary>
      public string DefaultCultureName {
         get { return defaultCultureName; }
         set { defaultCultureName = value; }
      }

      /// <summary>
      ///     Full path to the language folder
      /// </summary>
      public string LanguageFilePath {
         get { return languageFilePath; }
         set { languageFilePath = value; }
      }
      #endregion


      #region Public functions
      /// <summary>
      ///   Gets a PortalConfiguration object
      /// </summary>
      /// <returns>
      ///    PortalConfiguration
      /// </returns>
      public static LocalizationConfiguration GetConfig() {
         return (LocalizationConfiguration)ConfigurationSettings.GetConfig("Localization/Localization");
      }
      #endregion


      internal void LoadConfigValues(XmlNode node) {
         XmlAttributeCollection attributeCollection = node.Attributes;
         defaultCultureName = attributeCollection["defaultCulture"].Value;
         languageFilePath = attributeCollection["languageFilePath"].Value;
      }
   }

   internal class LocalizationConfigurationHandler : IConfigurationSectionHandler {
      public object Create(object parent, object context, XmlNode node) {
         LocalizationConfiguration config = new LocalizationConfiguration();
         config.LoadConfigValues(node);
         return config;
      }
   }
}

By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.

If a file you wish to view isn't highlighted, and is a text file (not binary), please let us know and we'll add colourisation support for it.


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

Comments and Discussions