Diskuze: Pridat do URL jazyk

Aktivity (2)
Avatar
werixon
Člen
Avatar
werixon:26. července 21:47

Ahoj, mám za úkol udelat statickou web page s prepínáním dvou jazyků CZ/EN. Udělal jsem to přes form, ale to je na pendrek. Chtěl bych to udělat přes tag a. Resp. chci, aby za doménou byl jazyk a já ho pak parsoval. Příklad. www.test.cz/cz nebo www.test.cz/en. Jak přidám do url druhé cz nebo en? To bude chtít nějak poštelovat htaccess? Díky za rady.

Zkusil jsem: mam to přes <form> a jedu to přes if.........nicméně ja tam otravná hláška, když stránku refresnu.

 
Odpovědět 26. července 21:47
Avatar
Odpovídá na werixon
Michal Šmahel:26. července 23:55

Ahoj, záleží na tom, co si představuješ pod pojmem "statická stránka". Ona stránka s PHP už úplně statická není, protože je (většinou) nějakým způsobem PHP měněna (ono to použití PHP jinak moc nedává smysl).

Pokud je ten web statický v tom smyslu, že máš jen hodně HTML souborů, které jsou provázané odkazy, je situace poměrně jednoduchá. V případě 2 jazyků se jen HTML stránky rozloží do 2 složek ("cz" a "en"). Redundance zde takřka nevadí, protože tyto statické weby se většinou moc neaktualizují a mají minimum obsahu. Tato možnost počítá s tím, že zmíněné PHP přidáváš až kvůli jazykům (pro doplnění).

Jestli tam máš nějak zapojené i PHP, třeba pro správu URL, je pro přidání podpory jazyků nutno zasáhnout do zdrojových kódů tohoto jazyka. Bez detailnějšího popisu ti ale nemohu moc pomoct. Je třeba vědět, jak máš ten systém postavený, potom se můžeme zamyslet nad nějakým rozumným řešením.

Přes .htaccess je možné z URL ve tvaru "domena.cz/cz/cla­nek/programova­ni-v-php/" udělat (pro server, uživatel to nepozná) třeba tohle: "domena.cz/cla­nek/programova­ni-v-php/?jazyk=cz".

Nahoru Odpovědět 26. července 23:55
Nejdůležitější je motivace, ovšem musí být doprovázena činy.
Avatar
Vojtěch Janoušek:27. července 1:55

Ahoj, statická...jo to jsem neřekl moc přesně. Prikládám svůj kod. Defakto to je jen index plus nejaky css. Neni zadne vetveni.

<!DOCTYPE HTML>
<html lang="<?php echo $_POST['en'] ? "en" : "cs";?>">
  <head>
  <meta http-equiv="content-type" content="text/html; charset=utf-8">
  <!--<link rel="shortcut icon" href="favicon.ico" type="image/x-icon">
  <link rel="icon" href="favicon.ico" type="image/x-icon">
  <meta name="viewport" content="width=device-width, minimum-scale=0.1, maximum-scale=5, user-scalable=yes" >   -->

  <title>testtujeme </title>
  <link rel="stylesheet" href="css.css" type="text/css">
  <link href="https://fonts.googleapis.com/css?family=Open+Sans&display=swap" rel="stylesheet">

  </head>
  <body>
  <div class="jazyk">
  <form method="post" action="index.php">
  <input type="submit" class="cz" name="cz" value="cz">
  <input type="submit" class="en" name="en" value="en">
  </form>
  </div>
  <?php

    if ($_POST['en']) {?>

    <div class="obal">
        <div id="logo"><img src="logo.png" alt="logo">
        </div>
            <div class="obal-text">

                <div class="hl-text-cz">
                    Anglicky text
            <div id="paticka">
            paticka en
            </div>
    </div>
  </body>
</html>

    <?php }
    else{ ?>
    <div class="obal">
        <div id="logo"><img src="logo.png" alt="logo">
        </div>
            <div class="obal-text">

                <cesky text
                </div>

            <div id="paticka">
            <ceska paticka
            </div>


    </div>


  </body>
</html>



   <?php }
  ?>
 
Nahoru Odpovědět 27. července 1:55
Avatar
Jaroslav Smrž
Redaktor
Avatar
Odpovídá na Vojtěch Janoušek
Jaroslav Smrž:27. července 7:42

Pokud má být web statický, tak nemůžeš používat dynamické PHP! Struktura statického webu by vypadala následovně: v rootu budeš mít index.html a 2 složky (cz a en). V index.html budou 2 odkazy CZ s cestou (cz/home.html) a EN s cestou (en/home.html).

Když by to mělo být dynamické, tak v index.php budeš mít opět 2 odkazy, ale budou měnit proměnou $jazyk, kterou budeš "whereovat" SQL dotaz na databázi s texty jako např ... WHERE language=en. Pak jen zjistíš pomocí podmínek if(isset) nastavení a podle toho vypíšeš správné texty do šablon. Tento postup sice není úplně správný, ale na školní ukázku je to asi nejjednodušší a nejrychlejší způsob. Samozřejmě v reálné aplikaci za použití MVC by se to dělalo úplně jinak a vydalo by to samostatný článek. Pokud by tě zajímal i tento způsob, dej vědět.

Nahoru Odpovědět 27. července 7:42
I have no idea what it is doing but I´m scared to delete it... xD
Avatar
Jaroslav Smrž
Redaktor
Avatar
Odpovídá na Vojtěch Janoušek
Jaroslav Smrž:27. července 7:49

Ještě další možností (a asi nejlepší) je použití ASP.NET Core místo php. Tam máš již vše připraveno na multijazyčné weby, ale opět to vyžaduje znalost OOP a MVC + C#.

Nahoru Odpovědět 27. července 7:49
I have no idea what it is doing but I´m scared to delete it... xD
Avatar
Milan Turyna
Redaktor
Avatar
Milan Turyna:27. července 7:53

Ahoj, stačí aby sis vytvořil složku cz a složku en, do en dáš anglický obsah, a do CZ český obsah a aby si ostatní mohli vybrat jeslti chtějí anglickou nebo českou stránku tak před to do index.php můžeš udělat automatické checkování jestli je čech nebo ne (můžeš to udělat přes IP, ale to nevím jak a nebo přes javascript (https://www.w3schools.com/…location.asp) s tím že klient to bude muset potvrdit) a potom aby tě to dalo na správný odkaz) a nebo to uděláš snadno, že na index.php před CZ a EN dáš dvě fullpage tlačítka (jedno na půlku druhou na půlku) a na jednom bude CZ a EN a každé bude směrovat na jinou (jedno na CZ druhé na EN).

Jak si tohle vyřešíš to už je na tobě, ale CZ a EN můžeš jednoduše udělat přes adresář/složku.

Editováno 27. července 7:56
 
Nahoru Odpovědět 27. července 7:53
Avatar
Odpovídá na Jaroslav Smrž
Vladislav Ladicky:27. července 9:38

To je ale blbá rada...

 
Nahoru Odpovědět  +3 27. července 9:38
Avatar
Ondřej Šrytr
Redaktor
Avatar
Ondřej Šrytr:27. července 14:14

Ahoj,

co si jazyk předávat metodou GET? Např. mujweb.cz/?lang=en (jeden z nich by musel být defaultní). V databázi bych si vytvořil seznam klíčů/slovíček a ty pak podle jazyka dosazoval do HTML jako text.

 
Nahoru Odpovědět  +4 27. července 14:14
Avatar
Peter Mlich
Člen
Avatar
Peter Mlich:29. července 10:08

Co s tim htaccess uz mas hotove, vyzkousene, nasel jsi googlem, jak na to a tak?
.htaccess je soubor ve hlavni slozce webu. Pokud je povolene v php jej pouzivat, tak jej pouzije. Muzes tam nastavit presmerovani stranek, jak popisujes. To se da vsechno najit i googlem.

 
Nahoru Odpovědět  +1 29. července 10:08
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 9 zpráv z 9.