Gå til innhold

Hvordan ha flerspråkelig side?


Anbefalte innlegg

Videoannonse
Annonse

Hvis du bruker php-include bør det være en smal sak. Du lager to include mapper; en med norske sider og en med engelske. Så bruker du et includescript med støtte for to mapper og får adresser omtrent omtrent som dette

 

?page=about&lang=eng

Lenke til kommentar
Hvis du bruker php-include bør det være en smal sak. Du lager to include mapper; en med norske sider og en med engelske. Så bruker du et includescript med støtte for to mapper og får adresser omtrent omtrent som dette

 

?page=about&lang=eng

5901650[/snapback]

Den idéen hørtes bra ut.

Trenger nok noe hjelp til å skrive om det scriptet.

 

/*** KONFIGURASJON ***/

$default	= "hovedside";	// fila som skal inkluderes hvis variabelen er tom.
$directory	= "inc";  // mappa filene dine ligger i.
$extension	= "php";  // filendingen på filene dine.


/*** SCRIPTET STARTER HER ***************************************************/
/*** (ikke gjør endringer med mindre du vet hva du gjør! =) *****************/

$page = $_GET['page'];

// for å hindre at det inkluderes fra uønskede plasser (stopper hackerne)
if (preg_match('/(http:\/\/|^\/|\.+?\/)/', $page)) echo "I'll h4x yuo!!1"; 


elseif (!empty($page))          	// sjekke at variabelen ikke er tom.
{
if (file_exists("..//public_html/$directory/$page.$extension"))    // sjekke om fila eksisterer.
 include("..//public_html/$directory/$page.$extension");    	// inkluder fila.
else              // hvis ikke,
 echo "<h1>Error 404</h1>\n<p>Finner ikke siden!</p>\n";	// skriv en feilmelding.
}
else              	// eller,
include("..//public_html/$directory/$default.$extension");    	// inkluder fila som definert som $default.

?>

 

går jo an å sjekke med php hvilket språk nettleseren er stilt inn på da...

husker ikke koden akkurat nå..

Kunne ikke ha prøvd å grave opp det scriptet fra en eller annen plass eller? :cool:

Lenke til kommentar

Og da blir php-scriptet noe sånt? Litt nybegynner i php, så noen må nok "renskrive" det :)

 

 

<?php


$lang = echo substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0,2);

if ($lang == "no") {
include "index_no.php";
}
elseif ($lang == "eng" {
include "index_eng.php";
}
else {
echo "Du må velge et språk";
}

?>

 

 

Edit: Glemte en =

Endret av EvoZ
Lenke til kommentar

else-setningen må heller skrives slik:

 

else {
   echo "My webpage is not written in your language, you will be redirected to the English page";
}

 

grunnen til det er at language alltid er satt (i nettleseren), men det kan være mange andre språk enn norsk og engelsk

 

 

 

så koden blir vel sånn:

 

<?php


$lang = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0,2);

if ($lang =="no") {
   include "index_no.php";
} elseif ($lang =="en") {
   include "index_en.php";
} else {
   echo "My webpage is not written in your language, you will be redirected to the English page";
}

?>

 

 

edit: leif

Endret av rønning
Lenke til kommentar
else-setningen må heller skrives slik:

 

else {
   echo "My webpage is not written in your language, you will be redirected to the English page";
}

 

grunnen til det er at language alltid er satt (i nettleseren), men det kan være mange andre språk enn norsk og engelsk

 

 

 

så koden blir vel sånn:

 

<?php


$lang = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0,2);

if ($lang =="no") {
   include "index_no.php";
} elseif ($lang =="en") {
   include "index_en.php";
} else {
   echo "My webpage is not written in your language, you will be redirected to the English page";
}

?>

 

 

edit: leif

5923674[/snapback]

Okai.

Men hva skjer med denne da?

 

?page=about&lang=eng

 

Det scriptet velger forskjellige index filer.

Går det ann å ha den samme index fila men includere andre sider hvis det velges engelsk?

Altså definere en annen include mappe eller noe?

 

Edit: skjønner du hva jeg mener?

Endret av harrir
Lenke til kommentar

Bare drit i ?page=about&lang=eng, dette gjør ting mye enklere..

Loomy: derfor substr()...det er abre de to første bokstavene som blir tatt med, enten "en" eller "no".

 

harrir: du kan skrive denne koden over includescriptet ditt:


<?php


$lang = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0,2);

if ($lang =="no" || $lang =="nn" || $lang =="nb") {
  $docdir="norsk";
} else {
  $docdir="engelsk";
}

?>

 

så kan du ha dette i include-scriptet:

include ($docdir"/"$side".php");

Endret av rønning
Lenke til kommentar

Fixed m/ nn og nb

 


<?php


$lang = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0,2);

if ($lang =="no") {
  $docdir="norsk";
} elseif ($lang == "nb") {
  $dovdir="norsk";
} elseif ($lang == "nn") {
  $dovdir="norsk";
} elseif ($lang =="en") {
  $docdir="engelsk";
} else {
  $docdir="engelsk";
}

?>

 

så kan du ha dette i include-scriptet:

include ($docdir"/"$side".php");

Lenke til kommentar

den siste koden der gjør ingen forskjell, $lang returnerer bare de 2 første bokstavene, som uansett nokmål eller nynorsk er "no"...og så lenge han ikke skal ha en side for bokmål og en side for nynorsk har det jo ingen ting å si da..

 

gjorde forresten om koden jeg skrev i forrige post, trenger ikke å ha med mer enn nødvendig...

Lenke til kommentar

Takker så mye.

Ser nå at det passer meg best å bruke den versjonen med to indexer. Typisk nok.

Får nok bruk får det andre scriptet en dag.

Men nå vet jeg jaffal hvordan det kan gjøres og har lært en del nye ting med php :D

 

Hvis jeg plutselig finner ut av jeg ikke fatta eller ikke fikk til noe så skriker jeg ut :wee:

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...