Mikä olisi järkevin tapa tehdä samoista sivuista versiot eri kielillä?
Kieliversiot sivuista?
Kaksikielinen
7561
0Äänestä
Muut lukivat myös
Odottaa vastausta
Näihin keskusteluihin ei ole vielä vastattu. Ole ensimmäinen.
Turvaa tilisi vahvistamalla puhelinnumerosi. Voit silloin palauttaa unohtuneen salasanan tekstiviestillä.
Näihin keskusteluihin ei ole vielä vastattu. Ole ensimmäinen.
Vastaukset 7
Vanhimmat
Ekana mieleentuleva (=luultavasti pidemmän päälle heikko) ratkaisu on tallentaa jokaiselle kieliversiolle omat kiinteät merkkijonot omiin tiedostoihin eli vaikkapa:
-- suomi.inc: --
$text_title = "Tervetuloa!";
$text_h1 = "H1 -teksti";
$text_p = "BODY -teksti";
-- english.inc: --
$text_title = "Welcome!";
$text_h1 = "Text for H1";
$text_p = "Text for BODY";
-- index.php: --
include $lanquage.'.inc';
ja sitte tekee fi.inc en.inc jne.
include "suomi.inc";
tai
include $lanquage.'.inc';
Mutta miten välitetään tieto siitä mikä kieli on kyseessä? Jotenkin kai $QUERY_STRINGillä mutta miten se nyt meni.
*todellakin aloittelija*
$_REQUEST['locale']
Jos kyseistä tietoa ei tarvita ekalla sivulla, niin voihan selaimessa pistää localen cookieen tai formin hidden kenttään yms.
Sitten hakee sen vaan $_COOKIE tai $_POST taulukoista.
Arvaa ymmärsinkö jotain tuosta.
Miten olisi pieni toimiva esimerkki.
Toimivuudesta en tämän kanssa tiedä, en aio testata. Ja paras tapa oppia on tehdä itse, vaikka vaikeata alkuun olisikin =)
Eräs tapa:
Laitat kaikille sivuille (tai vähintäänkin etusivulle) linkit eri kieliversioihin sillai, että tulee
Englannille - index.php?locale=en
Suomelle - index.php?locale=fi
Ruotsille - index.php?locale=se
ja sitten ihan siinä index.php:n alussa komennat
$locale = $_GET['locale'];
include $locale.".inc";
Sekä kaikkiin omalle saitille osoittaviin linkkeihin perään tuon ?locale=$locale
Tämä on vähän lyhytnäköinen ratkaisu, sillä tuollainen erillinen kielen valitseminen on toistuvasti vittumaista. Tutustu kekseihin (cookies), joilla voit jättää selaajan koneelle tiedon, mitä kieliversiota hän käyttää.
http://fi.php.net/manual/en/features.cookies.php
Nyt, tuota localea lukiessa jos ei ole annettu osoiteriviltä locale -muuttujaa ( !isset($_GET['locale']) ), tarkista seuraavaksi, onko se jo kekseissä saatavana.
Ota kuitenkin huomioon, että jotkut käyttäjät ovat estäneet keksien käytön selaimissaan. Pidä siis huoli, että varalla on esimerkiksi tuo osoiterivimenetelmä.
Hauskaa opiskelua!
Jos itse tekisin niin rekisteröisin valitun kielen sessioniin ja tämän jälkeen hakisin tietokannasta valitun kielen mukaan sivun alussa teksti materiaalin ja sitten vain echoisin sitä halutuissa kohdissa.