[ Mauro 2410 @ 18.06.2007. 17:52 ] @
Dobar dan ekipa
Početnik sam u PHP-u i baš mi treba pomoć vas iskusnijih.
Kako da u PHP-u napravim stranice na više jezika, a da kod promjene jezika ne moram kreirati čitavu novu stranicu?
Nadam se da ste me razumjeli.
Ukoliko neko ima neku gotovu skriptu ili prijedlog bit ću mu zahvalan.
[ mickey.co.ba @ 18.06.2007. 18:04 ] @
za to ti je potrebno veoma malo znanja sto se tiče PHP-a

da dzaba ne pisem ovdje neke karafeke, ako imas instaliran APPSERV u folderu www imas index i popratne fajlove u www/appserv

procackaj malo... skizit ces, to je jedan od nacina...
[ broker @ 18.06.2007. 18:55 ] @
Imas gotovu besplatnu biblioteku Universal Language Tool For PHP
[ hatebreeder @ 18.06.2007. 20:02 ] @
Nemojmo muciti pocetnika...

Sve delove koji treba da se prikazuju definisi preko nekih promenljivih... primera radi $tekst1 $tekst2 itd i echo-uj ga gde god pozelis... na pocetku strane postavi neki get koji dobija koji jezik je u pitanju tipa index.php?lang=sr a posle toga namesti da ucita stranu jezici/sr.php preko include... taj sr.php treba da bude sledeceg formata

Code:

<?php
$tekst1 = "nesto";
$tekst2= "nesto";
//i tako dalje za sve potrebno
?>


Ukoliko ucitavas iz baze razliciti tekst to isto definisi u ovome fajlu preko naziva tabele itd... Nadam se da shvatas ideju jer to je bas pocetnicki mada primenljivo u nekim slucajevima i kasnije...
[ Mauro 2410 @ 18.06.2007. 20:20 ] @
Hvala hatebreeder, ali mi molim te pomozi malo detaljnije.

Primjer, kreiram folder "languages" i unutra stavim fileove npr. lang_en.php, lang_de.php... (prijevodi na engleski i njemački) na način na koji si mi opisao.
E sad, kako bi u index.php izgledao kod koji bi pozivao određeni jezik, a na početnu index stranicu bih stavio zastavice za svaki jezik tako kad posjetitelji kliknu na određenu zastavicu stranica se prevede na taj jezik?

Hvala unaprijed
[ hatebreeder @ 18.06.2007. 20:46 ] @
Nemam obicaj da kucam cele kodove al ajd kad sam poceo da objasnjavam...

Da ne bi mnogo kucali primer ce biti minimalan a sve ces razumeti...

u folder languages strpaj dva fajla lang_sr.php i lang_en.php za pocetak

u mysql-u napravi 2 tabele tipa News za dva razlicita jezika videces iz koda...

Code:

<?php
//ovo je fajl lang_sr.php
$db_table = "news_sr";

$tekst1 = "Naslov";
$tekst2 = "Tekst";
?>



Code:

<?php
//ovo je fajl lang_en.php
$db_table = "news_en";

$tekst1 = "Title";
$tekst2 = "Text";
?>


Code:

<?php
//ovo je fajl index.php

//OVDE NAPISI KOD ZA KONEKCIJU SA MYSQL-om ako je koristis dole (naveo sam je u primeru da odma i to pokapiras)

if (!isset($_GET["lang"])) $lang = "en"; else $lang = $_GET["lang"]; //da nista ne prifali

include("languages/lang_$lang.php");

$result = mysql_query("SELECT * FROM $db_table"); //ovo razumes
$row = mysql_fetch_array($result");

$nestoizbaze1 = $row["nestoizbaze1"];
$nestoizbaze2 = $row["nestoizbaze2"];

//sad echoujes html strane sa tim da linije koje su promenljive izgledaju po principu
echo "<nekitag>$tekst1: $nestoizbaze1 </nekitag>";
echo "<nekitag>$tekst2: $nestoizbaze2 </nekitag>";
?>


Kod sam kucao direktno ovde tako da mozda ima poneka greska al nadam se da si shvatio sustinu
[ Mauro 2410 @ 18.06.2007. 21:41 ] @
Sorry šta sam prezahtjevan, ali ima li neko jednostavnije rješenje bez upotrebe MySQL-a?
[ hatebreeder @ 18.06.2007. 22:05 ] @
Pa naravno da ima

Code:

<?php
//ovo je fajl lang_sr.php
$tekst1 = "Naslov";
$tekst2 = "Tekst";

$nekitekst1 = "tralala";
$nekitekst2 = "proba123";
?>


Code:

<?php
//ovo je fajl lang_en.php
$tekst1 = "Title";
$tekst2 = "Text";

$nekitekst1 = "blabla";
$nekitekst2 = "test123";

?>


Code:

<?php
//ovo je fajl index.php

if (!isset($_GET["lang"])) $lang = "en"; else $lang = $_GET["lang"]; //da nista ne prifali

include("languages/lang_$lang.php");

//sad echoujes html strane sa tim da linije koje su promenljive izgledaju po principu
echo "<nekitag>$tekst1: $nekitekst1 </nekitag>";
echo "<nekitag>$tekst2: $nekitekst2 </nekitag>";
?>


evo uz male prepravke to ti je to sto si trazio za pocetak nadam se da si shvatio ideju...
[ Miroslav Ćurčić @ 18.06.2007. 23:05 ] @
Ovo poslednje hatebreeder-ovo rešenje ti je najzgodnije (rečnik-datoteka).

Najbrže je sa stanovišta izvršavanja skripta, a i pruža ti šire mogućnosti, recimo možeš u svakoj da pored samih reči uneseš i neku logiku ako je potrebno.
Ja recimo tu dodajem setlocale funkciju da mi (pokuša) prilagoditi sistem tom jeziku.

Jedina mana je što ne možeš napraviti on-line prevodilac/editor samih reči.

Ipak malo doradi ovaj deo: $lang = $_GET["lang"]; tako što ćeš u sledećem redu dodati:
if(!in_array($lang, array('en','sr','ba'))) $lang='en';
[ hatebreeder @ 19.06.2007. 21:07 ] @
mVeliki dao sam najjednostavniji primer al kao proveru bolje da ne uzima array vec da proveri da li postoji fajl sa zadatim jezikom preko file_exists() i mislim da je to skroz dovoljno za pocetak ovakvog pristupa problemu

Edit: palo mi na pamet da moze da se uradi i
Code:
require_once("lang_$lang.php") or include("lang_en.php");
ovo mislim da je jos elegantnije al ipak nisam obrisao gornju polovinu posta
[ Mauro 2410 @ 19.06.2007. 22:23 ] @
Puno hvala na pomoći
Uspio sam riješiti problem : )