Avatar billede delphiuser Mester
10. februar 2014 - 19:07 Der er 8 kommentarer og
1 løsning

behold sprog ved sideskift

Hej eksperter...

Jeg sidder med et problem. Jeg er ved at lave et project hvor jeg laver en side på dansk og engelsk. det første ved at skifte sprog fungere fint.

Men når jeg så klikker på et link i min menu ændre den sproget til dansk og ikke beholder engelsk som jeg havde valgt fra start.

min kode ser sådan ud.

index.php

<?php
require_once 'config/data.php';
if(!empty($_GET['language'])) {
    $_COOKIE['language'] = $_GET['language'] === 'en' ? 'en' : 'dk';
} else {
    $_COOKIE['language'] = 'dk';
}
setcookie('language', $_COOKIE['language']);

if($_COOKIE['language'] == "en") {
    include('config/en.php');
} else {
    include('config/da.php');
}
?>
<link rel="stylesheet" type="text/css" href="css/styles.css">
<body>
<header>
<img src="img/calendar.png" width="90" height="90">
<p class="head"><?php echo $title; ?></p>
<p class="sub"><?php echo $sub_title; ?></p>
</header>
<nav></nav>
<aside>
<ul>
    <li><a href="index.php"><?php echo $link1; ?></a></li>
    <li><a href="#"><?php echo $link2; ?></a></li>
    <li><a href="index.php?side=1QFP35TRIP"><?php echo $link3; ?></a></li>
    <li><a href="index.php?side=1QFP45TRIP"><?php echo $link4; ?></a></li>
    <li><a href="index.php?side=1QFP55TRIP"><?php echo $link5; ?></a></li>
    <li><a href="#"><?php echo $link6; ?></a></li>
</ul>
<table border="0" cellpadding="0" cellspacing="0">
<tr>
    <td><a href="index.php?language=dk"><img src="img/dk_flag.png" width="40" height="20"></a></td>
    <td><a href="index.php?language=en"><img src="img/flag_britain.jpg" width="40" height="20"></a></td>
</table>
</aside>
<section>
<?php
switch($_GET['side']) {
    case "1QFP35TRIP" :
    include("inc/customer.php");
    break;   
    case "1QFP45TRIP" :
    include("inc/about.php");
    break;
    case "1QFP55TRIP" :
    include("inc/contact.php");
    break;
}
?>
</section>
<footer><?php echo $foot_note; ?></footer>
</body>

Jeg tror mit problem ligger i mit link. men kan ikke finde ud af hvad jeg skal gøre for at den beholder det valgte sprog uanset hvilket link du trykker på.

Med venlig hilsen

Delphiuser
Avatar billede rix Praktikant
10. februar 2014 - 19:15 #1
hvis du gøre dette $_COOKIE['key'] = "value" ville den ikke oprette en cookie der skal du bruge funktionen setcookie
Avatar billede delphiuser Mester
10. februar 2014 - 19:31 #2
rix17172 -> Jeg sætter også en cookie i mit script.

if(!empty($_GET['language'])) {
    $_COOKIE['language'] = $_GET['language'] === 'en' ? 'en' : 'dk';
} else {
    $_COOKIE['language'] = 'dk';
}
setcookie('language', $_COOKIE['language']);

if($_COOKIE['language'] == "en") {
    include('config/en.php');
} else {
    include('config/da.php');
}
Avatar billede rix Praktikant
10. februar 2014 - 19:43 #3
ahh den havde jeg ikke aet. du mangler at sætte hvor lang tid den skal gælde prøv og gå ind på php.net og se en eks på hvordan det klares
Avatar billede delphiuser Mester
10. februar 2014 - 19:50 #4
hjælper ikke noget. for når jeg trykker på et af mine links så ændre den min cookie til default igen og det er ikke meningen. den skal kun ændre sproget hvis man klikker på et af flagene for at ændre sproget.
Avatar billede Temp_dk Nybegynder
10. februar 2014 - 19:54 #5
Det smarteste ville være kun at have 1 side at vedligeholde.
Benyt dig af gettext og en po-editor til at lave oversættelser med.

Se på http://www.php.net/manual/en/ref.gettext.php
Avatar billede acore Ekspert
10. februar 2014 - 20:07 #6
Måske skal

    <li><a href="index.php?side=1QFP35TRIP"><?php echo $link3; ?></a></li>

ændres til

    <li><a href="index.php?side=1QFP35TRIP&language=<?php echo(($_COOKIE['language']);?>"><?php echo $link3; ?></a></li>

i alle menu-links, så du får sproget med over...
Avatar billede delphiuser Mester
10. februar 2014 - 20:16 #7
acore -> læg et svar og pointene er dine. Det virker nu.

Tak for hjælpen...
Avatar billede acore Ekspert
10. februar 2014 - 20:40 #8
Super!
Avatar billede repox Seniormester
11. februar 2014 - 07:24 #9
Det var en umådeligt kedelig løsning. Nu manipuleres klientens cookie unødigt for hvert sidekald.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester