I can detect the visitor's country code by using the latest geoip.dat file.
How can I change the public store's language by using this information for the visitor?
protected void Session_Start(object sender, EventArgs e)
{
var _workContext = EngineContext.Current.Resolve<IWorkContext>();
var _webHelper = EngineContext.Current.Resolve<IWebHelper>();
var _languageService = EngineContext.Current.Resolve<ILanguageService>();
Nop.Services.Directory.GeoCountryLookup geo = new Nop.Services.Directory.GeoCountryLookup(_webHelper);
string country = geo.LookupCountryCode(Request.ServerVariables["REMOTE_ADDR"]);
if (country.Equals("TR"))
{
var language = _languageService.GetLanguageById(0);
_workContext.WorkingLanguage = language;
}
else
{
var language = _languageService.GetLanguageById(1);
_workContext.WorkingLanguage = language;
}
}
var customer = new Customer()
{
CustomerGuid = Guid.NewGuid(),
Active = true,
CreatedOnUtc = DateTime.UtcNow,
LastActivityDateUtc = DateTime.UtcNow,
// Specify the language based on the client IP:
Language = ................. // Insert your logic here
};
if (String.IsNullOrEmpty(_workContext.CurrentCustomer.Username))
protected void Session_Start(object sender, EventArgs e)
{
var _workContext = EngineContext.Current.Resolve<IWorkContext>();
var _webHelper = EngineContext.Current.Resolve<IWebHelper>();
var _languageService = EngineContext.Current.Resolve<ILanguageService>();
Nop.Services.Directory.GeoCountryLookup geo = new Nop.Services.Directory.GeoCountryLookup(_webHelper);
string country = geo.LookupCountryCode(Request.ServerVariables["REMOTE_ADDR"]);
if (country.Equals("TR"))
{
var language = _languageService.GetLanguageById(0);
_workContext.WorkingLanguage = language;
}
else
{
var language = _languageService.GetLanguageById(1);
_workContext.WorkingLanguage = language;
}
}