Update of /cvsroot/springnet/Spring.Net/src/Spring/Spring.Web/Globalization/Resolvers
In directory sc8-pr-cvs8.sourceforge.net:/tmp/cvs-serv12432/src/Spring/Spring.Web/Globalization/Resolvers
Modified Files:
CookieCultureResolver.cs DefaultWebCultureResolver.cs
RequestCultureResolver.cs SessionCultureResolver.cs
Log Message:
fixed SPRNET-659
added missing files AbstractCacheTests
added Tests for Spring.Web/Globalization/Resolvers
fixed Spring.Testing.NUnit.Tests.2003 project
Index: CookieCultureResolver.cs
===================================================================
RCS file: /cvsroot/springnet/Spring.Net/src/Spring/Spring.Web/Globalization/Resolvers/CookieCultureResolver.cs,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -d -r1.3 -r1.4
*** CookieCultureResolver.cs 18 May 2006 21:37:52 -0000 1.3
--- CookieCultureResolver.cs 25 Aug 2007 14:26:35 -0000 1.4
***************
*** 49,57 ****
if (cookie != null)
{
! return CultureInfo.CreateSpecificCulture(cookie.Value);
}
else
{
! return GetDefaultLocale();
}
}
--- 49,57 ----
if (cookie != null)
{
! return base.GetCulture(cookie.Value);
}
else
{
! return base.GetDefaultLocale();
}
}
Index: DefaultWebCultureResolver.cs
===================================================================
RCS file: /cvsroot/springnet/Spring.Net/src/Spring/Spring.Web/Globalization/Resolvers/DefaultWebCultureResolver.cs,v
retrieving revision 1.4
retrieving revision 1.5
diff -C2 -d -r1.4 -r1.5
*** DefaultWebCultureResolver.cs 9 Aug 2006 23:46:53 -0000 1.4
--- DefaultWebCultureResolver.cs 25 Aug 2007 14:26:35 -0000 1.5
***************
*** 23,26 ****
--- 23,27 ----
using System.Threading;
using System.Web;
+ using Spring.Util;
namespace Spring.Globalization.Resolvers
***************
*** 41,59 ****
protected override CultureInfo GetDefaultLocale()
{
- HttpContext context = HttpContext.Current;
-
if (DefaultCulture != null)
{
! return DefaultCulture;
}
! else if (context != null && context.Request.UserLanguages != null && context.Request.UserLanguages.Length > 0)
{
! // ignore unconvertible browserlanguage
! try { return CultureInfo.CreateSpecificCulture(context.Request.UserLanguages[0].Split(';')[0]); } catch {}
}
return Thread.CurrentThread.CurrentUICulture;
}
/// <summary>
/// Resolves the culture from the context.
/// </summary>
--- 42,85 ----
protected override CultureInfo GetDefaultLocale()
{
if (DefaultCulture != null)
{
! return base.DefaultCulture;
}
!
! CultureInfo culture = GetCulture(GetRequestLanguage());
! if (culture != null)
{
! return culture;
}
+
return Thread.CurrentThread.CurrentUICulture;
}
/// <summary>
+ /// Extracts the users favorite language from "accept-language" header of the current request.
+ /// </summary>
+ /// <returns>a language string if any or <c>null</c>, if no languages have been sent with the request</returns>
+ protected virtual string GetRequestLanguage()
+ {
+ HttpContext context = HttpContext.Current;
+ if (context != null && context.Request != null && ArrayUtils.HasLength(context.Request.UserLanguages))
+ {
+ return context.Request.UserLanguages[0];
+ }
+ return null;
+ }
+
+ /// <summary>
+ /// Resolves a culture by name.
+ /// </summary>
+ /// <param name="cultureName">the name of the culture to get</param>
+ /// <returns>a (possible neutral!) <see cref="CultureInfo"/> or <c>null</c>, if culture could not be resolved</returns>
+ public CultureInfo GetCulture(string cultureName)
+ {
+ try { return new CultureInfo(cultureName.Split(';')[0]); } catch { }
+ return null;
+ }
+
+ /// <summary>
/// Resolves the culture from the context.
/// </summary>
Index: SessionCultureResolver.cs
===================================================================
RCS file: /cvsroot/springnet/Spring.Net/src/Spring/Spring.Web/Globalization/Resolvers/SessionCultureResolver.cs,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -d -r1.2 -r1.3
*** SessionCultureResolver.cs 18 May 2006 21:37:52 -0000 1.2
--- SessionCultureResolver.cs 25 Aug 2007 14:26:35 -0000 1.3
***************
*** 21,24 ****
--- 21,25 ----
using System.Globalization;
using System.Web;
+ using Spring.Util;
namespace Spring.Globalization.Resolvers
***************
*** 44,54 ****
public override CultureInfo ResolveCulture()
{
! if (HttpContext.Current.Session[CultureKey] != null)
{
! return (CultureInfo) HttpContext.Current.Session[CultureKey];
}
else
{
! return GetDefaultLocale();
}
}
--- 45,56 ----
public override CultureInfo ResolveCulture()
{
! CultureInfo culture = SessionCulture;
! if (culture != null)
{
! return culture;
}
else
{
! return base.GetDefaultLocale();
}
}
***************
*** 60,64 ****
public override void SetCulture(CultureInfo culture)
{
! HttpContext.Current.Session[CultureKey] = culture;
}
}
--- 62,83 ----
public override void SetCulture(CultureInfo culture)
{
! SessionCulture = culture;
! }
!
! /// <summary>
! /// Gets/Sets the current session's culture.
! /// </summary>
! protected virtual CultureInfo SessionCulture
! {
! set
! {
! AssertUtils.ArgumentNotNull(value, "SessionCulture");
! HttpContext.Current.Session[CultureKey] = value;
! }
! get
! {
! CultureInfo culture = HttpContext.Current.Session[CultureKey] as CultureInfo;
! return culture;
! }
}
}
Index: RequestCultureResolver.cs
===================================================================
RCS file: /cvsroot/springnet/Spring.Net/src/Spring/Spring.Web/Globalization/Resolvers/RequestCultureResolver.cs,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -d -r1.3 -r1.4
*** RequestCultureResolver.cs 18 May 2006 21:37:52 -0000 1.3
--- RequestCultureResolver.cs 25 Aug 2007 14:26:35 -0000 1.4
***************
*** 23,26 ****
--- 23,27 ----
using System.Threading;
using System.Web;
+ using Spring.Util;
namespace Spring.Globalization.Resolvers
***************
*** 53,68 ****
HttpContext context = HttpContext.Current;
! if (context.Request.UserLanguages != null && context.Request.UserLanguages.Length > 0)
! {
! return CultureInfo.CreateSpecificCulture(context.Request.UserLanguages[0]);
! }
! else if (DefaultCulture != null)
{
! return DefaultCulture;
}
! else
{
! return Thread.CurrentThread.CurrentUICulture;
}
}
--- 54,69 ----
HttpContext context = HttpContext.Current;
! CultureInfo culture = GetCulture(GetRequestLanguage());
! if (culture != null)
{
! return culture;
}
!
! if (DefaultCulture != null)
{
! return base.DefaultCulture;
}
+
+ return Thread.CurrentThread.CurrentUICulture;
}
|