代码之家  ›  专栏  ›  技术社区  ›  Marat Faskhiev

ASP.NET Web服务本地化

  •  2
  • Marat Faskhiev  · 技术社区  · 17 年前

    我想在ASP.NET应用程序中本地化Web服务。

    我可以编写以下代码来检测首选客户端区域性:

    CultureInfo culture = null;
    if (Request.UserLanguages!=null && Request.UserLanguages.Length>0) {
      string lang = Request.UserLanguages[0];
      if (!String.IsNullOrEmpty(lang)) {
        try {
          culture = new CultureInfo(lang) ;
        }
        catch {}
      }
    }
    

    并使用此表达式从资源中获取字符串:

    WebResources.ResourceManager.GetString(stringName, culture);
    

    但我想使用类似于page-directive属性的内容:

    Culture="Auto" UICulture="Auto"
    

    有可能吗?

    1 回复  |  直到 16 年前
        1
  •  2
  •   Plip    16 年前

    首先,这一切都取决于客户端传输的报头,用户语言集合从中收集信息。如果您的服务的大多数消费者不是浏览器,他们就不会传输这些信息。

    其次,不,我不认为可以自动执行,但是您可以在httpContext.items集合中为值编写一些内容,然后总结

    public string GetResource(string Key)
    {
        culture = HttpContext.Items["UserLanguage"];
        WebResources.ResourceManager.GetString(stringName, culture);
    }
    

    那么你的代码应该是:

    GetResource("Blah");
    

    谢谢,

    Phil。

    推荐文章