Avatar
BlugW
Redaktor
Avatar
BlugW:27.2.2014 16:57

Hoj,

chci poprosit jestli mi někdo neporadí.

Zkouším udělat redirect stránky podle jazyka návštěvníka.
Mám script, ale nějak mi nefunguje, můžete mi někdo poradit v čem je problem?

switch (HttpUtility.HtmlEncode(Request.ServerVariables["HTTP_ACCEPT_LANGUAGE"]))
{

    case "cs-CZ":
    Response.Redirect("http://www.seznam.cz");
    break;

    case "en-EN":
    Response.Redirect("http://www.google.com");
    break;

}

Díky

Odpovědět 27.2.2014 16:57
Pořiď si mac na www.appletrh.cz. Novinky a zajímavosti ze světa Apple na https://www.applemagazin.com
Avatar
BlugW
Redaktor
Avatar
BlugW:27.2.2014 17:35

Tak tohle mi funguje:

if (HttpUtility.HtmlEncode(Request.ServerVariables["HTTP_ACCEPT_LANGUAGE"]) == HttpUtility.HtmlEncode ("cs-CZ"))
    {
        Response.Redirect ("http://www.seznam.cz");
    }
else
    {
        Response.Redirect ("http://www.google.com");
    }

Ale nevím jak udělat pomoci switche nebo if když chci např. 3, nebo 5 jazyku.

5x stejnou podminku asi dělat je blbost.

Nahoru Odpovědět 27.2.2014 17:35
Pořiď si mac na www.appletrh.cz. Novinky a zajímavosti ze světa Apple na https://www.applemagazin.com
Avatar
exyi
Redaktor
Avatar
exyi:27.2.2014 17:39

Zkus se debuggerem podivat co je v te variable a podle toho to napsat do switche. Jinak to zkusim az se dostanu k pocitaci.

 
Nahoru Odpovědět 27.2.2014 17:39
Avatar
Zdeněk Pavlátka
Tým ITnetwork
Avatar
Odpovídá na BlugW
Zdeněk Pavlátka:27.2.2014 17:41

Zkus tohle:

switch (Request.ServerVariables["HTTP_ACCEPT_LANGUAGE"])
{

    case "cs-CZ":
    Response.Redirect("http://www.seznam.cz");
    break;

    case "en-EN":
    Response.Redirect("http://www.google.com");
    break;

}

Podle mě je problém v tom, že hodnotu z Request.Server­Variables["HTTP_AC­CEPT_LANGUAGE"] proháníš metodou HttpUtility.HtmlEn­code(), ale pak jí porovnáváš s "běžnými" stringy. U podmínky, která ti funguje máš HttpUtility.HtmlEn­code ("cs-CZ"), kdežto ve switchi máš jen "cs-CZ".

Nahoru Odpovědět  +1 27.2.2014 17:41
Kolik jazyků umíš, tolikrát jsi programátor.
Avatar
BlugW
Redaktor
Avatar
BlugW:27.2.2014 17:48

Už jsem to našel.

Možná někomu pomůže :)

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace ViewSwitcher
{
    public partial class _Default : Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            string sLang = Request.UserLanguages[0];
            sLang = sLang.Substring(0, 2);

            switch (sLang)
            {
                case "en":
                    Response.Redirect("http://www.google.com/");
                    break;
                case "cs":
                    Response.Redirect("http://www.seznam.cz/");
                    break;
        }
    }
}
Nahoru Odpovědět 27.2.2014 17:48
Pořiď si mac na www.appletrh.cz. Novinky a zajímavosti ze světa Apple na https://www.applemagazin.com
Avatar
Zdeněk Pavlátka
Tým ITnetwork
Avatar
Odpovídá na BlugW
Zdeněk Pavlátka:27.2.2014 17:51

To je prakticky totéž, co jsem psal.

Nahoru Odpovědět 27.2.2014 17:51
Kolik jazyků umíš, tolikrát jsi programátor.
Avatar
BlugW
Redaktor
Avatar
Odpovídá na Zdeněk Pavlátka
BlugW:27.2.2014 17:54

Já jsem to sem dál dřív než přečetl odpovědi :D

Nahoru Odpovědět  +1 27.2.2014 17:54
Pořiď si mac na www.appletrh.cz. Novinky a zajímavosti ze světa Apple na https://www.applemagazin.com
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 7 zpráv z 7.