Asp.net 是否可以将一个资源文件与多种语言一起使用?
我有一个.NET4.0网站,我们有两个副本在运行。一个面向美国用户,另一个面向非盟用户。代码基本上是相同的,唯一的区别是这里或那里的一些文本和措辞,其中提到了美国和澳大利亚。现在我有两个副本的网站,这是相当愚蠢的。所以我只想保留一个副本,并将所有这些区域文本更改放在一个资源文件中Asp.net 是否可以将一个资源文件与多种语言一起使用?,asp.net,c#-4.0,localization,Asp.net,C# 4.0,Localization,我有一个.NET4.0网站,我们有两个副本在运行。一个面向美国用户,另一个面向非盟用户。代码基本上是相同的,唯一的区别是这里或那里的一些文本和措辞,其中提到了美国和澳大利亚。现在我有两个副本的网站,这是相当愚蠢的。所以我只想保留一个副本,并将所有这些区域文本更改放在一个资源文件中 是否可以只让一个资源文件包含多种“语言”,或者我需要创建resource.US.resx和resource.AU.resx文件?另外,如果我创建了两个文件,我如何告诉.net在每个站点中使用哪个文件?我假设在web.c
是否可以只让一个资源文件包含多种“语言”,或者我需要创建resource.US.resx和resource.AU.resx文件?另外,如果我创建了两个文件,我如何告诉.net在每个站点中使用哪个文件?我假设在web.config全球化中,uiCulture&culture='en-AU'或en-US会告诉.net使用这两个文件中的哪一个?是的,你是对的,你可以使用Resource.US.resx和Resource.AU.resx文件,然后在web.config全球化中告诉uiCulture&culture='en-AU'或en-US 代码:
string culturePref = [Your setting from web-config]; // "en-US" or "en-EU"
try
{
Thread.CurrentThread.CurrentCulture =
CultureInfo.CreateSpecificCulture(culturePref);
}
catch
{
Thread.CurrentThread.CurrentCulture =
new CultureInfo("en-US");
}
Thread.CurrentThread.CurrentUICulture = Thread.CurrentThread.CurrentCulture;
谢谢-有没有办法只使用一个文件,或者我必须为每个区域使用单独的文件?您应该为每个区域使用单独的文件这在代码隐藏中如何工作?理想情况下,我希望有一个名为resource.en-us.resx和resource.en-au.resx的资源文件,但如果我这样做,我必须指定在代码中使用哪个资源文件,这意味着我必须有两个codebehind文件,这与使用资源文件的目的背道而驰。我可以有两个名为resource.resx的资源文件,然后将正确的副本放在每个网站上。但我更希望有两个名称明确的文件,并且能够使用相同的代码读取每个文件。nm-看起来需要一个默认文件Filename.resx,然后我可以添加任何称为Filename.culture.resx的特定于区域性的文件