积极答复者
【互联网】多语言网站如何制作

问题
-
请问一下过来人,如果要制作多语言网站应该如何实现。以前老土的办法是为每种语言编写一套程序,选择语言调用各自对应版本。现如今应该有简便的办法。听说.NET中的本地化可以做到这点,只是了解,一直以来也没有深入研究。
举个列子吧:就如同google、或者微软bing 选项中的显示语言,请问这是如何实现的呢?感谢
- 已移动 孟宪会Moderator 2010年9月1日 1:10 (发件人:.NET Framework 一般性问题讨论区)
答案
-
所谓的“多语言”网站,就拿这个MSDN论坛本身来说,无非就是一些导航栏、按钮等的多语言,这些项都是在开发的时候就可以预计到的,例如:
“Microsoft > 论坛主页 > .NET 开发 论坛 > .NET Framework 一般性问题讨论区 > 【互联网】多语言网站如何制作”
我们通过enum和Dictionary的组合,来创建动态的输出,希望下面的简单例子可以帮到你:
public class DefaultDisplay { public virtual string Title { get { return "MSDN Social"; } } public virtual string ForumsName { get { return ".Net Forums"; } } } sealed class ZH_CN_Display : DefaultDisplay { public override string ForumsName { get { return ".Net 开发论坛"; } } public override string Title { get { return "MDSN论坛"; } } } enum Language { ZH_CN, EN_US } Dictionary<Language, DefaultDisplay> Menu = new Dictionary<Language, DefaultDisplay>(); void Execute(Language lang) { //(Menu设置为静态成员会更好) Menu.Add(Language.ZH_CN, new ZH_CN_Display()); Menu.Add(Language.EN_US, new DefaultDisplay()); Console.Write(Menu[lang].ForumsName); Console.Write(Menu[lang].Title); }
- 已标记为答案 孟宪会Moderator 2011年3月4日 0:12
全部回复
-
比较偷懒的办法,直接借助Bing的翻译工具嵌入到网页中,凡是Bing支持的语言都支持自动翻译,而且精准度也比较高:
-
比较偷懒的办法,直接借助Bing的翻译工具嵌入到网页中,凡是Bing支持的语言都支持自动翻译,而且精准度也比较高:
-
所谓的“多语言”网站,就拿这个MSDN论坛本身来说,无非就是一些导航栏、按钮等的多语言,这些项都是在开发的时候就可以预计到的,例如:
“Microsoft > 论坛主页 > .NET 开发 论坛 > .NET Framework 一般性问题讨论区 > 【互联网】多语言网站如何制作”
我们通过enum和Dictionary的组合,来创建动态的输出,希望下面的简单例子可以帮到你:
public class DefaultDisplay { public virtual string Title { get { return "MSDN Social"; } } public virtual string ForumsName { get { return ".Net Forums"; } } } sealed class ZH_CN_Display : DefaultDisplay { public override string ForumsName { get { return ".Net 开发论坛"; } } public override string Title { get { return "MDSN论坛"; } } } enum Language { ZH_CN, EN_US } Dictionary<Language, DefaultDisplay> Menu = new Dictionary<Language, DefaultDisplay>(); void Execute(Language lang) { //(Menu设置为静态成员会更好) Menu.Add(Language.ZH_CN, new ZH_CN_Display()); Menu.Add(Language.EN_US, new DefaultDisplay()); Console.Write(Menu[lang].ForumsName); Console.Write(Menu[lang].Title); }
- 已标记为答案 孟宪会Moderator 2011年3月4日 0:12