А зачем от него избавляться? :)
Я же написал, что он всё оплатил сегодня.
Если бы это оправдывало себя с коммерческой точки зрения, то так бы и было.
Тогда это называется "ни себе ни людям". И если бы Вы внимательно читали, то заработок составляет 10-20$ за одну страницу из пяти возможных, а это в сумме уже 50-100$, что лично для меня неплохо для однодневной работы.
Опять полнейшая глупость. Человек сам установил цену, понимая, что можно получить эту же услугу дешевле или вообще бесплатно. Если Вам завидно, что одни люди могут себе позволить заплатить за работу приличную сумму, а другие не стесняются взять эти деньги, то это уже Ваши личные проблемы.
Этот подход говорит только о низкой самооценке и неуверенности в себе.
Еще один бред. Любая услуга (программиста, дизайнера) на 90% состоит из интереса. И как определить, сколько должен стоить труд человека, по затратам времени или по количеству произведенного пота??
P.S. Оплату я получил в полном объеме!
Если у юзера или бота не обозначено локали совсем, то идет язык по-умолчанию - английский.
mcafeeuser, я кажется чётко обозначил, что
Майкрософт тут не при чём, стандартное решение на то и стандартное. Нужно ручки приложить:
Делаем URLы вида www.site.com/en/ и www.site.com/ru/
1. Создаём HttpModule в папке App_Code вида GlobalModule.cs
public class GlobalModule : IHttpModule
{
public GlobalModule()
}
public void Dispose()
public void Init(HttpApplication context)
context.AuthorizeRequest += new EventHandler(context_AuthorizeRequest);
context.PreRequestHandlerExecute += new EventHandler(context_PreRequestHandlerExecute);
void context_PreRequestHandlerExecute(object sender, EventArgs e)
HttpContext context = (sender as HttpApplication).Context;
if (context.Items["OriginalUrl"] != null)
context.RewritePath(context.Items["OriginalUrl"].ToString());
void context_AuthorizeRequest(object sender, EventArgs e)
HttpApplication application = sender as HttpApplication;
string url = application.Request.RawUrl;
if (!url.Contains(".aspx"))
return;
string cultureStr = string.Empty;
if (url.StartsWith("/ru/"))
cultureStr = "ru-RU";
else if (url.StartsWith("/en/"))
cultureStr = "en-US";
if (cultureStr != string.Empty)
CultureInfo culture = new CultureInfo(cultureStr);
Thread.CurrentThread.CurrentCulture = culture;
Thread.CurrentThread.CurrentUICulture = culture;
string prefix = cultureStr == "ru-RU" ? "ru/" : "en/";
application.Context.Items["OriginalUrl"] = url;
url = url.Remove(1, 3);
application.Context.RewritePath(url);
else
string prefix = string.Empty;
foreach (string lang in application.Context.Request.UserLanguages)
if (lang.StartsWith("en")) { prefix = "en/"; break; }
if (lang.StartsWith("ru")) { prefix = "ru/"; break; }
if (prefix == string.Empty)
prefix = "en/";
HttpResponse response = application.Response;
response.Clear();
response.AddHeader("Location", url.Insert(1, prefix));
response.StatusCode = 302;
response.Status = "302 Found";
response.End();
2. Подключаем модуль в web.config
----- IIS 6
<httpModules><add name="GlobalModule" type="GlobalModule" /></httpModules>
----- IIS 7
<system.webServer><modules><add name="GlobalModule" type="GlobalModule" /></modules></system.webServer>
Если всё правильно настроили, должно работать
При вызове www.site.com будет происходить редирект 302 Found на страницу в соответствии с настройками браузера.
При прямом вызове www.site.com/en/ будет сразу английский язык. Гугл выйдет допустим на en и через страницу смены языков попадёт на русский.
Блин, я фигею, чел с большой репутацией кормит меня завтраками уже неделю. А последнее время даже на СМС не отвечает, в аське фиг найдешь.
Что-то у меня тоже большие сомнения. Если ТС работал неофициально, то с чего бы они через 1,5 месяца решили наехать, да еще и после кидка, а если официально, то как можно было не отстоять свои права. Что-то ТС здесь темнит.
Да уж, бывают такие уникумы, как ТС. Если честно, уже даже и не смешно, ведь ТС на полном серьёзе не понимает, почему все ополчились против неё.