Diskuze: Pridat do URL jazyk
V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.

Člen

Zobrazeno 9 zpráv z 9.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.
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/clanek/programovani-v-php/" udělat (pro server, uživatel to nepozná) třeba tohle: "domena.cz/clanek/programovani-v-php/?jazyk=cz".
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 }
?>
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.
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#.
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.
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.
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.
Zobrazeno 9 zpráv z 9.