我正在开发一个Windows应用程序,它使用WebClient从http URL下载模板。
我必须在报告中实现本地化。应用程序将始终使用默认语言(英语),并且我将拥有一个变量,该变量将保存报告必须打印的语言。报告模板将根据语言下载。具有命名约定的每种语言的报告模板都不同,如
默认:http://www.xyz.com/report/report.htm
英语:report.en-US.htm, 西班牙语:report.es-ES.htm 葡萄牙语:report.pt-PT.htm
我是否可以为每种语言使用switch..case,或者可以采用其他任何方式。
答案 0 :(得分:1)
如果文件名格式保持不变,则可以执行此操作
string cultureCode = "en-US"; //set current locale
Uri reportUri = new Uri(String.Format("http://www.xyz.com/report/report.{0}.htm", cultureCode), UriKind.Absolute);
这样,它会为您添加相关的区域设置动态创建URI。作为一种快速方法
public void Uri GetLocalReportUri(string cultureCode)
{
return new Uri(String.Format("http://www.xyz.com/report/report.{0}.htm", cultureCode), UriKind.Absolute);
}
答案 1 :(得分:1)
您可以从
获取当前的文化名称 System.Globalization.CultureInfo.CurrentUICulture.Name
或
System.Web.HttpRequest.UserLanguages
所以你可以按照
的方式做点什么 string url = string.Format("http://www.xyz.com/report/report{0}.htm", CultureInfo.CurrentUICulture.Name);
输出如
http://www.xyz.com/report/report.en-US.htm
答案 2 :(得分:1)
您可以使用Globalization类来获取当前的文化。请尝试以下方法。
string culture = System.Globalization.CultureInfo.CurrentCulture.Name;
string destUri = String.Format("http://www.xyz.com/report/report.{0}.htm", culture);