Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.
Avatar
Neaktivní uživatel: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
Neaktivní uživatelský účet
Avatar
Neaktivní uživatel: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
Neaktivní uživatelský účet
Avatar

Člen
Avatar
: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
Odpovídá na Neaktivní uživatel
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
27.2.2014 17:41
Kolik jazyků umíš, tolikrát jsi programátor.
Avatar
Neaktivní uživatel: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
Neaktivní uživatelský účet
Avatar
Odpovídá na Neaktivní uživatel
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
Odpovídá na Zdeněk Pavlátka
Neaktivní uživatel:27.2.2014 17:54

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

Nahoru Odpovědět
27.2.2014 17:54
Neaktivní uživatelský účet
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.