none
【互联网】多语言网站如何制作 RRS feed

  • 问题

  • 请问一下过来人,如果要制作多语言网站应该如何实现。以前老土的办法是为每种语言编写一套程序,选择语言调用各自对应版本。现如今应该有简便的办法。听说.NET中的本地化可以做到这点,只是了解,一直以来也没有深入研究。

    举个列子吧:就如同google、或者微软bing  选项中的显示语言,请问这是如何实现的呢?感谢

    • 已移动 孟宪会Moderator 2010年9月1日 1:10 (发件人:.NET Framework 一般性问题讨论区)
    2010年8月30日 8:26

答案

  • 所谓的“多语言”网站,就拿这个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);
      }
    

    2010年8月31日 18:13

全部回复

  • 比较偷懒的办法,直接借助Bing的翻译工具嵌入到网页中,凡是Bing支持的语言都支持自动翻译,而且精准度也比较高:

    参考:http://www.microsofttranslator.com/widget/

    2010年8月31日 2:30
  • 比较偷懒的办法,直接借助Bing的翻译工具嵌入到网页中,凡是Bing支持的语言都支持自动翻译,而且精准度也比较高:

    参考:http://www.microsofttranslator.com/widget/

    问题是,不同地区国家访问者不能总借助第三方翻译软件翻译网站吧,所以说在网站程序中提供多语言版本是必要的,但要如何实现呢?
    2010年8月31日 3:20
  • 所谓的“多语言”网站,就拿这个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);
      }
    

    2010年8月31日 18:13