Create resource files for each language you want to support, mentioned below.
alternative text http://geekswithblogs.net/images/geekswithblogs_net/dotNETPlayground/resx.gif
Depending on the language / current culture of the user, read the values โโfrom the corresponding language resource file and display in the label or in the MessageBox. Here is a sample code:
public static class Translate { public static string GetLanguage() { return HttpContext.Current.Request.UserLanguages[0]; } public static string Message(string key) { ResourceManager resMan = null; if (HttpContext.Current.Cache["resMan" + Global.GetLanguage()] == null) { resMan = Language.GetResourceManager(Global.GetLanguage()); if (resMan != null) HttpContext.Current.Cache["resMan" + Global.GetLanguage()] = resMan; } else resMan = (ResourceManager)HttpContext.Current.Cache["resMan" + Global.GetLanguage()]; if (resMan == null) return key; string originalKey = key; key = Regex.Replace(key, "[ ./]", "_"); try { string value = resMan.GetString(key); if (value != null) return value; return originalKey; } catch (MissingManifestResourceException) { try { return HttpContext.GetGlobalResourceObject("en_au", key).ToString(); } catch (MissingManifestResourceException mmre) { throw new System.IO.FileNotFoundException("Could not locate the en_au.resx resource file. This is the default language pack, and needs to exist within the Resources project.", mmre); } catch (NullReferenceException) { return originalKey; } } catch (NullReferenceException) { return originalKey; } } }
In an asp.net asn application, you would use it like this:
<span class="label">User:</span>
You would now put:
<span class="label"><%=Translate.Message("User") %>:</span>
this. __curious_geek
source share