Poslao: 21 Apr 2009 20:25
|
offline
- shollebgd
- Novi MyCity građanin
- Pridružio: 25 Feb 2009
- Poruke: 11
|
Pozdrav svima.
Napravio sam pocetnu stranu sajta (index.php) i uradio je dizajnerski (flash, slike, css...) i zanima me kako da napravim da kad izabere korisnik srpski jezik link bude na primer :
www.mojastrana.com\index.php?lang=srb
Znam da se ovo radi preko GET metode i funkcije switch, ali kako da spojim strane koje sam napravio u engleskom i srpskom jeziku sa glavnom stranom (index.php) na taj nacin?
Umem to da uradim u cistom HTML-u, ali nije mi to cilj
Unapred hvala.
|
|
|
Registruj se da bi učestvovao u diskusiji. Registrovanim korisnicima se NE prikazuju reklame unutar poruka.
|
|
Poslao: 21 Apr 2009 22:44
|
offline
- Balkanac82
- Legendarni građanin
- Pridružio: 20 Dec 2004
- Poruke: 2887
- Gde živiš: Na Balkanu
|
Ima više načina da se to napravi.
Možeš napravit stranice index_eng.php i index_srb.php,
a onda na index.php staviti (samo taj kod)
<?php
if ($_GET['lang'] == 'srb') include ('index_srb.php');
else include ('index_eng.php');
?>
Ako koristiš onaj link koji si dao prikazaće se stranica na srpskom, u suprotnom će se prikazivati stranica na engleskom.
|
|
|
|
Poslao: 22 Apr 2009 13:17
|
offline
- igor86
- Stručni saradnik
Web programiranje
- Pridružio: 24 Maj 2006
- Poruke: 1633
|
Po meni najbolje rjesenje je da u sesiji cuvas zeljeni jezik za korisnika. Tako neces morati taj parametar svaki put da prosledjujes kroz GET
|
|
|
|
Poslao: 22 Apr 2009 15:59
|
offline
- Pridružio: 23 Sep 2008
- Poruke: 52
- Gde živiš: Sabac
|
Pa najbolje odradi to ovako...
1. Napravi folder "lang" i u njemu npr. 2 php fajla sr.php i en.php.
2. Na index stranu gde zelis da koristis promenu jezika stavi sledeci kod. P.S Moras ga staviti na sam pocetak strane zbog session_start();-a.
<?
// Promena jezika
session_start();
if($_GET[lang] != "") {
$_SESSION['lang'] = $_GET[lang];
require("lang/".$_SESSION['lang'].".php");
} else {
if(isset($_SESSION['lang'])) {
require("lang/".$_SESSION['lang'].".php");
} else {
$_SESSION['lang'] = "srb";
require("lang/srb.php");
}
}
?>
A onda u srb.php stavis nesto ovako:
<?
$dobrodoslica = "Dobro dosli";
?>
u eng.php stavis:
<?
$dobrodoslica = "Welcome";
?>
E sad si sve spakovao. Sad gde god zelis na stranici na kojoj si stavio ovaj gore kod , u <body> tagovima stavis
<?= $dobrodoslica ?>
Sad ako ti je lang=srb on ce napisati tu Dobro dosli ako je lang=eng on ce napisati Welcome...
Ovo ti je tek pocetak, mozes sad ovu pricu nadogradjivati u beskraj... Zavisi i kakav ti je sajt cist php ili ga kombinujes sa htmlom...
|
|
|
|
Poslao: 22 Apr 2009 17:21
|
offline
- shollebgd
- Novi MyCity građanin
- Pridružio: 25 Feb 2009
- Poruke: 11
|
Hvala ljudi na odgovorima.
Ovaj kod sa sesijama sluzi da zapamti sta je korisnik izabrao tj. u mom slucaju da zapise da li je izabran srpski ili engleski jezik, zar ne?
Mislio sam da uradim preko switch funkcije da case 1 bude srpski, case 2 engleski i npr. case 3 spanski.
E sad, u slucaju izbora jezika na glavnoj strani (index.php), napravio sam zastavice (slike) koje mi sluze kao linkovi za jezik.
Umem da napravim stranu index_eng.php i spojim je samo preko ahref-a, ali to mi nije poenta.
Da ne bih gusio , pogledajte linkove na ovoj strani i to je ono sto mi treba.
a2agency.com/
Hvala jos jednom i pozdrav.
|
|
|
|
Poslao: 22 Apr 2009 18:01
|
offline
- Blood
- Ugledni građanin
- Pridružio: 26 Jul 2003
- Poruke: 384
- Gde živiš: Beograd
|
FilipKrstic ::Pa najbolje odradi to ovako...
<?
// Promena jezika
session_start();
if($_GET[lang] != "") {
$_SESSION['lang'] = $_GET[lang];
require("lang/".$_SESSION['lang'].".php");
} else {
if(isset($_SESSION['lang'])) {
require("lang/".$_SESSION['lang'].".php");
} else {
$_SESSION['lang'] = "srb";
require("lang/srb.php");
}
}
?>
Nije bas najbolje ovako, ovo ti je klasican sigurnosni propust. U sustini ideja je na mestu, samo se pozabavi malo sigurnoscu. Jednostavnije a sigurnije:
$expected = array('sr','en','de');
$lng = (in_array($_COOKIE['lang'], $expected)) ? $_COOKIE['lang'] : $expected[0]; // cookie, session, sta god ti je lakse ...
include("lang/".$lng.".php");
|
|
|
|
Poslao: 22 Apr 2009 18:16
|
offline
- Pridružio: 23 Sep 2008
- Poruke: 52
- Gde živiš: Sabac
|
Da moze i ovako kao sto je Blood rekao... Bolja ideja...
|
|
|
|
Poslao: 23 Apr 2009 15:17
|
offline
- shollebgd
- Novi MyCity građanin
- Pridružio: 25 Feb 2009
- Poruke: 11
|
Hvala jos jednom ljudi.
Evo kad napisem Blood - ov kod, otvori mi pola glavne strane (index.php), a u sredini bude strana na srpskom (sr.php)
Meni samo treba linkovanje 2 strane u php, ali ne onako klasicno preko a href - a vec :
mojastrana.php?id=1
ili nesto slicno, znaci sa linkom koji ima ? u sebi.
Bas kao sto sam stavio sajt one agencije i linkovanje kako je uradjeno na njemu, tako isto i meni treba?
Zasto mora preko sesije i cookija?
Ne treba sajt da pamti koji korisnik je izabrao jezik, vec uvek da otvara glavnu stranu sa izborom jezika, samo je poenta svega da napravim drugacije linkovanje tj. bas kao na sajtu
a2agency.com/
Da li moze da se uradi preko case - a?
Jos jednom hvala svima i veliki pozdrav.
|
|
|
|
Poslao: 26 Apr 2009 10:30
|
offline
- Pridružio: 23 Sep 2008
- Poruke: 52
- Gde živiš: Sabac
|
Pa mozes da napravis case-ove npr case indexen: , kontakten etc... A da ti case default: bude index na srpskom... Ali, ako pravis veliki sajt zamisli koliko ce ti tezak biti index? duplo nego sto bi trebao, jer onda kad napravis npr. na srpskom moras isto to prekopirati i na case-ove za englesku verziju, sto znaci duplo tezi index...
Onako kako sam ti ja iskucao... Mozes prevesti bilo sta, bilo gde... Na strani koja pocinje onim kodom. A default jezik je srpski... Gore u kodu mozes promeniti da ti default jezik bude bilo koji...
Kako god.. Ako radis sa casovima moras i meni sajta napakovati u phpu, npr. sa nekom if funkcijom... Jer moras u link dodavati promenljivu (lang=sr,en )kako bi korisnik mogao da surfuje sa jezikom na koji se prebacio... Sem ako i meni sajta ne stavis u casove... Sto je po meni apsurdno...
A ovaj sajt: a2agency.com/ nema nigde srpsku verziju koliko ja vidim... ima switch page i par case-ova sve na eng... Ne znam kakvu si paralelu nasao sa jezicima i tom stranicom a2agency...
|
|
|
|
Poslao: 27 Apr 2009 18:47
|
offline
- shollebgd
- Novi MyCity građanin
- Pridružio: 25 Feb 2009
- Poruke: 11
|
Hteo sam da mi default u case - ovima bude pocetna strana (index.php) na kojoj se bira jezik, a kad klikne posetilac na srpski da se otvori strana ciji je link nesto :
mojsajt.com/index.php?lang=srb
Napravio sam strane i na srpskom i engleskom, znam da ih povezem preko HTML-a, ali hocu da uradim na nacin preko PHP-a.
E sad, da li moze da uradi tako da se samo srednji deo sajta menja kad se klikne na odredjeni link, a ostatak (gornji meni, levi meni, animacije, slike...) se ne menja?
Da se naprave posebni fajlovi (srb.php, eng.php, de.php) koji bi se pozivali kad korisnik klikne na odredjeni jezik.
Ceo meni ce biti u flash-u, pa cu iz njega drugacije linkovati strane, nego me samo zanima za taj izbor jezika na pocetku.
Paralela sa tim sajtom (http://www.a2agency.com/) je u vezi linkova, znaci meni treba samo tako da napravim linkove kao sto su na toj strani, nista vise, a za posle cu sam da se snadjem.
Hvala i veliki pozdrav.
|
|
|
|