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
werixon
Člen
Avatar
werixon:26.7.2019 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.7.2019 21:47
Avatar
Odpovídá na werixon
Michal Šmahel:26.7.2019 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.7.2019 23:55
Nejdůležitější je motivace, ovšem musí být doprovázena činy.
Avatar
Vojtěch Janoušek:27.7.2019 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.7.2019 1:55
Avatar
Jaroslav Smrž
Tvůrce
Avatar
Odpovídá na Vojtěch Janoušek
Jaroslav Smrž:27.7.2019 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.7.2019 7:42
/* Life runs on code */
Avatar
Jaroslav Smrž
Tvůrce
Avatar
Odpovídá na Vojtěch Janoušek
Jaroslav Smrž:27.7.2019 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.7.2019 7:49
/* Life runs on code */
Avatar
Milan Turyna
Tvůrce
Avatar
Milan Turyna:27.7.2019 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.7.2019 7:56
Nahoru Odpovědět
27.7.2019 7:53
Řeš pouze to, co dokážeš ovlivnit.
Avatar

Člen
Avatar
Odpovídá na Jaroslav Smrž
:27.7.2019 9:38

To je ale blbá rada...

 
Nahoru Odpovědět
27.7.2019 9:38
Avatar
Ondřej Šrytr:27.7.2019 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
27.7.2019 14:14
Avatar
Peter Mlich
Člen
Avatar
Peter Mlich:29.7.2019 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
29.7.2019 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.