| | |
| Stránka: 1 z 1
| [ Príspevkov: 16 ] | |
Autor | Správa |
---|
Registrovaný: 04.03.07 Prihlásený: 17.10.20 Príspevky: 73 Témy: 30 |
Iba by ma zaujímalo ako by som riešil keby chcem mať viacjazyčný web...
nejaký switch v ktorom by boli jazyky a potom keby chcem jeden text napr.
sk["Domov],["Ahoj,toto je text v SK"];
en["Home],["Hello,this text is in EN"];
iba čisto teoreticky kam by som to mal ukladať a ako riešiť
ďakujem za vaše postrehy
|
|
Registrovaný: 21.02.07 Prihlásený: 21.02.10 Príspevky: 3984 Témy: 96 |
bolo to tu riešené musíš pohľadať
|
|
Registrovaný: 04.03.07 Prihlásený: 17.10.20 Príspevky: 73 Témy: 30 | Napísal autor témy johny694: 01.06.2009 22:31 | |
|
ak myslíš od Kaidžas-a tak o tom viem,ale neviem akým spôsbom by som ukladal a vypisoval texty
|
|
Registrovaný: 26.02.08 Prihlásený: 24.05.13 Príspevky: 372 Témy: 66 Bydlisko: Nové Zámky |
no ja osm nieco taketo riesil asi tak...ukladal som si jazyk do session...potom v kode som si includol subor podla jazyku ked bolo v session cz tak som includoval cz.php v tom subore som mal napriklad $premenna['helo']='Vitaj'; a dalsie slova alebo vety alebo texty...ale mozes to tahat aj z db je to len a len na tebe...ale ako bolo spomenute riesilo sa to tu a nie raz nie v jednom topicu...a aj na nete mas vela prikladov staci hladat
|
|
Registrovaný: 21.02.06 Prihlásený: 08.12.14 Príspevky: 5404 Témy: 30 Bydlisko: Bratislava | Napísal shaggy: 01.06.2009 22:56 | |
|
Ukladať jazyk do session je samozrejme sprostosť. Vyhľadávače uvidia stránku iba v jednom jazyku (keďže URL bude pre rôzne jazyky rovnaká).
Najjednoduchšie je používať nejaký parameter, napr lang=sk, lang=en.
Alebo to môžeš rewritnúť na pekné adresy, takže budeš vedieť, že:
- domena.sk/nazov-clanku - má použiť slovenské texty,
- domena.sk/en/nazov-clanku - použijú sa anglické texty.
Či už to budeš ťahať z databázy, alebo vždy iba includneš súbor podľa zvoleného jazyka je iba na tebe.
_________________ Neradím a nekomunikujem cez SS, ak niečo potrebujete, máte iné možnosti: Ak vám zmizla téma, alebo sa vám niečo nepáči. Ak potrebujete nahlásiť príspevok/človeka, reportujte ho. Ak máte s niečim problém, riešte to v danej téme. |
|
Registrovaný: 27.07.07 Príspevky: 3948 Témy: 51 Bydlisko: Bratislava |
preco by to mala byt sprostost? co je na tom, ze si zaznaci nejaku hodnotu do session? moze ju predsa pouzivat ako kontrolu, resp. ak niekto zada neexistujuci jazyk, tak sa zobrazi stranka v jazyku, ktory bol pouzity naposledy... nikde predsa nepise, ze pouziva LEN session a v url nepouziva parameter urcujuci jazyk... samozrejme, mozno to tak z jeho prispevku vyznelo, ale netreba hned robit ukvapene zavery...
_________________ NTB: Acer Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB | RAM: 8GB DDR3 1066 MHz | HDD: 1TB SSD WD BLUE |
|
Registrovaný: 21.02.06 Prihlásený: 08.12.14 Príspevky: 5404 Témy: 30 Bydlisko: Bratislava | Napísal shaggy: 02.06.2009 17:29 | |
|
Ale netreba vidieť za tým niečo, čo tam nie je.
Nehovorím o zložitejšom webe, kde má zmysel ukladať hodnoty do session. Aký by bol prínos v tomto prípade? Ak niekto klikne na odkaz "anglická verzia", automaticky sa zmenia všetky url na "anglické", nevidím dôvod zbytočne to dávať do session. Iba to zvádza k tomu, aby bol na rovnakých stránkach iný obsah.
_________________ Neradím a nekomunikujem cez SS, ak niečo potrebujete, máte iné možnosti: Ak vám zmizla téma, alebo sa vám niečo nepáči. Ak potrebujete nahlásiť príspevok/človeka, reportujte ho. Ak máte s niečim problém, riešte to v danej téme. |
|
Registrovaný: 27.07.07 Príspevky: 3948 Témy: 51 Bydlisko: Bratislava |
zbytocne by to nebolo v tom pripade, keby session vyuzival na to, co som pisal vyssie... zalezi len na rozhodnuti programatora, ci taku moznost zakomponuje do systemu alebo nie... o velkosti webu je v tomto pripade zbytocne hovorit...
_________________ NTB: Acer Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB | RAM: 8GB DDR3 1066 MHz | HDD: 1TB SSD WD BLUE |
|
Registrovaný: 21.02.06 Prihlásený: 08.12.14 Príspevky: 5404 Témy: 30 Bydlisko: Bratislava | Napísal shaggy: 02.06.2009 22:54 | |
|
Stále nevidím dôvod prečo použiť session. Ten príklad, ktorý si uviedol je ako stvorený na použitie cookies, ale určite nie na session.
A ak náhodou niekto zadá neexistujúci jazyk, tak je veľká pravdepodobnosť, že nejde o náhodu (proste ten človek skúša ako bude systém reagovať) a vtedy nie je vôbec problém, ak sa neexistujúca stránka presmeruje na úvodnú stránku webu.
_________________ Neradím a nekomunikujem cez SS, ak niečo potrebujete, máte iné možnosti: Ak vám zmizla téma, alebo sa vám niečo nepáči. Ak potrebujete nahlásiť príspevok/človeka, reportujte ho. Ak máte s niečim problém, riešte to v danej téme. |
|
Registrovaný: 09.03.08 Prihlásený: 22.12.10 Príspevky: 356 Témy: 85 Bydlisko: Topoľčany |
Ja si myslim ze toto ti uplne staci. je to jednoduche a ucelne: Kód: <?php if(!isset($_SESSION['lang']) || $_GET['lang']!='') { switch($_GET['lang']) { case 'sk': $lang = 'sk'; break; case 'en': $lang = 'en'; break; default: $lang = 'sk'; break; } $_SESSION['lang'] = $lang; }
$jazyk = $_SESSION['lang'];
$text['sk']['domov'] = 'Domov'; $text['en']['domov'] = 'Strona główna';?>
použitie: Kód: <?php echo $text[$jazyk]['domov'];?> Odkaz z aktualnou premennou jazyka: Kód: <a href="/index.php?lang=<? echo $lang?>"><?php echo $text[$jazyk]['domov'];?></a>
Az ma niekto lepsie riesenie, rad sa poucim aj ja.
_________________ FCSpartak Trnava |
|
Registrovaný: 24.01.08 Prihlásený: 13.09.17 Príspevky: 14572 Témy: 66 Bydlisko: Žilina |
len v rýchlosti sa vyjadrím k použitiu SWITCH()
nepríde ti tam dačo zbytočné? Neurobí toto to isté?
Kód: case 'en': $lang = 'en'; break; default: $lang = 'sk'; break;
Nezabúdaj... každá maličkosť môže raz zavážiť Pokiaľ sa dá niečo jednoduchšie napísať, tak to treba určite využiť.
Okrem toho, nepoužívaj skrátené php značky (<? ?>), ale plný tvar (<?php ?>).. Aj keď to si možno len prehliadol
_________________ C#, PHP, ... |
|
Registrovaný: 09.03.08 Prihlásený: 22.12.10 Príspevky: 356 Témy: 85 Bydlisko: Topoľčany |
no tak az by som mohol poprosit ako by mal vyzerat ten kod podla poriadku. dakujem, a hovorim rad sa priucim novym veciam.
_________________ FCSpartak Trnava |
|
Registrovaný: 24.01.08 Prihlásený: 13.09.17 Príspevky: 14572 Témy: 66 Bydlisko: Žilina |
vidíš, a ešte jednu vec tam máš zle... prečo dvakrát volať echo, keď to stačilo raz? takže.. :
Kód: <?php if(!isset($_SESSION['lang']) || $_GET['lang']!='') { switch($_GET['lang']) { case 'en': $lang = 'en'; break; default: $lang = 'sk'; break; } $_SESSION['lang'] = $lang; }
$jazyk = aspon_nejaka_osetrujuca_funkcia($_SESSION['lang']); //je fajn to osetrit, lebo co ked budeme chciet pouzit tu premennu aj niekde inde a zabudneme, ze sme ju neosetrili? ?>
súbor napr s názvom lang.php: Kód: <?php $text['sk']['domov'] = 'Domov'; $text['sk']['menu_polozka_2'] = 'Kontakt'; $text['en']['domov'] = 'Mainpage'; $text['en']['menu_polozka_2'] = 'Contact'; ?>
použitie: (nechce sa mi to zas opisovať tak ako si to uviedol to v podstate aj môže byť Odkaz s aktuálnou premennou jazyka: Kód: htmlhtmlhtml <?php echo "<a href=\"index.php?lang=$lang\">$text[$jazyk]['domov']</a>"; ?>
to som si ešte pôvodne ani nevšimol... mal si zle odescapovanú úvodzkovku, tiež pravdepodobne z nepozornosti
len pre upresnenie pre ľudí, čo nevedia o čom píšem.. správne sa to píše \" a nie "/
_________________ C#, PHP, ... |
|
Registrovaný: 27.07.07 Príspevky: 3948 Témy: 51 Bydlisko: Bratislava |
mozno by bolo lepsie pouzit viacero suborov pre jednotlive jazyky, resp. pre kazdu logicku cast na stranke vytvorit novy subor s prekladom (na to vsak treba mat vytvoreny vhodny system, aby sa to dalo jednoducho pouzivat), lebo ukladat vsetko do jedneho mi pride dost neprehladne... a navyse, pri kazdom pouziti lang premennej je potrebne uviest aj $jazyk, co je z mojho pohladu zbytocne...
_________________ NTB: Acer Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB | RAM: 8GB DDR3 1066 MHz | HDD: 1TB SSD WD BLUE |
|
Registrovaný: 09.07.08 Prihlásený: 17.01.15 Príspevky: 1585 Témy: 96 |
prípadne ťahať premenné cez funkciu. Napr.
Kód: echo lang("text pri prihlasovani");
A ako bude vyzerať lang je už v podstate jedno, ak ti nebude vyhovovať jeden spôsob, môžeš prejsť na druhý, prípadne tretí. Vždy zmeníš iba funkciu lang.
_________________ neříkejte, že něco nejde udělat, protože se vždycky najde nějaký blbec, co neví, že to nejde – a udělá to! |
|
Registrovaný: 24.01.08 Prihlásený: 13.09.17 Príspevky: 14572 Témy: 66 Bydlisko: Žilina |
tých možností je až nechutne veľa ako to urobiť hlavne aby aspoň cca pochopil princíp
_________________ C#, PHP, ... |
|
| Stránka: 1 z 1
| [ Príspevkov: 16 ] | |
| Nemôžete zakladať nové témy v tomto fóre Nemôžete odpovedať na témy v tomto fóre Nemôžete upravovať svoje príspevky v tomto fóre Nemôžete mazať svoje príspevky v tomto fóre
|
|