Avatar billede mikaelo Nybegynder
14. april 2004 - 12:03 Der er 24 kommentarer og
1 løsning

2-sproget side?

Jeg har en mindre side, lavet "ganske almindeligt", uden brug af mysql osv. Nu har jeg behov for at lave siden på to sprog og mangler hjælp. Jeg har kigget tråde som http://www.eksperten.dk/spm/230214 igennem, uden at det hjælper mig, så jeg er lidt på bar bund.

Jeg behøver det sådan, at når man trykker skift sprog (engelsk fx.), skifter den til engelsk, på den side man står på (altså ikke noget med at hoppe til index) Og kan man lave det sådan at siderne selv kan opfatte, at man er udlændinge (!), ville det være rigtig fint!

Jeg er grøn i Mysql/PHP, men kan, med (stor) besvær, fatte tingene, hvis de bliver forklaret ordentligt. Nogen der kan hjælpe mig - og ved hvordan dette gøres lettest?
Avatar billede morten-vadskaer Praktikant
14. april 2004 - 12:15 #1
For at starte baglæns, så kan du med JavaScript se, hvilket sprog brugerens browser er sat op til og dermed dirigere brugeren videre. Det har dog den ulempe, at de danskere, der har deres browser på engelsk (inkl. mig selv) bliver dirigeret videre til en engelsk side. På min egen side gør jeg derfor følgende: Engelske brugere får en engelsk side med mulighed for at vælge sprog, tyske brugere får en tysk, svenskerne får en svensk etc. Det mener jeg, er det mest brugervenlige. Ellers brug mercur8's gode løsning på http://www.eksperten.dk/spm/230214

Du kommer nok ikke udenom at skulle lave to hjemmesider. Om ikke andet skal du jo lave al teksten på to sprog på hver enkelt side. Det er selvfølgelig et stort arbejde at lave en kopi af din hjemmeside på engelsk, men omvendt giver det dig gode muligheder for at eksperimentere lidt. F.eks. med at give engelske brugere et andet design, flere eller færre links/reklamer etc. Ved at sætte nogle tællere op, kan du så se, hvad der bedst kan betale sig.
Avatar billede mikaelo Nybegynder
14. april 2004 - 12:22 #2
Ok, fint. Det vil sige, at jeg ikke behøver at benytte mig af mysql, men altså bare javascript? Det passer sådan set fint nok hvis det er tilfældet, da siden er relativt lille.

Men hvis jeg forstår dig rigtigt, så skal man på index, hvis man er udlændinge/bruger engelsk sproget browser, vælge sprog. Hvis man er dansk/bruger dansk browser, hoppe den direkte til den dansk sprogede version. Ikke? Men hvad så hvis man skifter sprog efterfølgende, inde på de respektive sider - springer den så til index eller hvad?
Avatar billede dennismp Nybegynder
14. april 2004 - 12:34 #3
Jeg ville nok gøre det på en anden måde.

i din /index.php

laver du et tjek hvilket sprog browseren ønsker (ligesom i tråden du henviser til).. Og så lave et hop til
/dansk/ eller /da/ - hvis man har valgt dansk
ellers
/english/, /en/, /int/ .. hvis man ikke har..

På siderne bør du nok have et lille flag så man manuelt kan skifte sprog (det er desværre ikke så mange der bruger browsers mulighed for at vælge sprog, ligesom molvins skriver).

Denne løsning vil give en nemt seperation af dansk og engelsk - og webcrawlers vil kunne finde begge sprog og dermed øger du muligheden for at få flere hits via dem.
Avatar billede keysersoze Ekspert
14. april 2004 - 12:37 #4
det er en MEGET knoldet måde at lave to sider - forestil dig et arbejde folk ville have hvis de kører med 5 sprog og det er en side der konstant sker ændringer på??

Den nok simpleste måde at lave dette på er at lave fx en txt-fil for hver sprog med en masse variabler

var1 = "en eller anden tekst"
etc
etc

Hvis sprog DK så er valgt inkluderer du DK.txt og er sprog UK valgt inkluderer du UK.txt og så i stedet for at skrive teksten direkte ind i dine tabeller, layers eller hvad du end bruger så udskriver du indholdet af dine variabler.

I bund og grund er det lidt det samme man gør med en database - bare en lidt anden struktur
Avatar billede morten-vadskaer Praktikant
14. april 2004 - 12:38 #5
Jeg bruger også selv dennismp's metode, med at have en /dansk/ og en /engelsk/ løsning. På hver eneste side bør brugeren have mulighed for at vælge sprog. Hvis man skifter sprog, sørger du bare for, at brugeren ikke bliver stillet videre til det sprog, som browseren er indstillet til.
Avatar billede mikaelo Nybegynder
14. april 2004 - 12:46 #6
keyser - hvilket er "meget knoldet" efter din mening? Du husker at jeg, som skrevet står, er "grøn i Mysql/PHP, men kan, med (stor) besvær, fatte tingene....."?

Molvin og Dennismp - tjekker i snakker om, foregår vha. javascript right? Har i dette scipt liggende? Og mht. til at skfite sprog på hver enkelt side (som dennismp er inde på); forbliver man på samme side, eller hopper man til index?
Avatar billede dennismp Nybegynder
14. april 2004 - 12:47 #7
keysersoze: Fordi der er to undersider, behøver det jo ikke at betyde at man ikke kan genbruge html/php-kode. Det ville jo være oplagt at gøre det.

/dansk/, /engelsk/ løsning giver også et naturlig sted at placere de sprog-afhængige billeder, hvis man har sådanne.
Avatar billede mikaelo Nybegynder
14. april 2004 - 12:47 #8
tjekker = tjekket
Avatar billede mikaelo Nybegynder
14. april 2004 - 12:54 #9
jeg har ingen sprogafhængide billeder, bannere eller lignende. Eller dvs. jeg har overskrifter som er grafik og som selvfølgeligt skal ændres til engelsk, på en engelsk version.

Så skal det siges, at jeg includer min menu (php), hvilket jo så betyder at det er den samme menu der inkluderes på alle sider. Nu hvor jeg har behov for en engelsk version af menuen også, kan der vel osse laves et eller andet smart her?
Avatar billede keysersoze Ekspert
14. april 2004 - 13:06 #10
dennismp >> det er klart at man kan genbruge kode - men der ændrer ikke på det faktum at du stadig har dobbelt af nogle filer.

mikaelo >> det er knoldet af lave 2 hjemmesider som molvins skrev først. Jeg siger heller ikke at du SKAL bruge database - mit letteste forslag kig på at lave to txt-filer (eller to .php-filer) som du inkluderede i toppen af siden alt efter hvilket sprog der skulle vises på siden. Jeg arbejder i ASP og kan derfor ikke give dig en PHP-kode du kan bruge - kun vejlede.
Avatar billede mikaelo Nybegynder
14. april 2004 - 13:16 #11
Keyser - Ok, fint nok, jeg forstår hvad du siger nu.

Jeg har dog nok behov for at få (vist) noget konkret kode af den ene eller anden art.
Avatar billede keysersoze Ekspert
14. april 2004 - 13:27 #12
Jeg kan give dig eksempel i ASP - og det burde være ret simpelt at konvertere til PHP.

DK.txt
-------------
txt0010 = "Forside"
txt0020 = "Links"
txt0030 = "Billeder
-------------

UK.txt
-------------
txt0010 = "Home"
txt0020 = "Links"
txt0030 = "Pictures"
-------------

kode.asp
-------------
<%
If LANG = "UK" Then
  <!-- #include file="uk.txt" -->
Else
  <!-- #include file="dk.txt" -->
End If
%>

<table>
<tr>
<td><%=txt0010%></td>
</tr>
</table>
-------------

Om du så vil bruge en session, cookie eller querystring til at medføre det valgte sprog og dermed bestemme hvilken fil der skal inkluderes må være op til dig selv - men ovenstående er ret let at gå til, det kræver ikke rettelser i to filer ved småændringer og den dag du evt bestemmer dig for et nyt design har du stadig alle sprogfilerne du direkte kan bruge i det nye
Avatar billede dennismp Nybegynder
14. april 2004 - 17:31 #13
mikaelo: jeg stoler ikke på javascript :)

Her er lidt gammel kode der kan gøre det. Jeg kan godt opdaterer det til, hvis du ønsker det:
http://px.sklar.com/code.html?id=6
Avatar billede mikaelo Nybegynder
14. april 2004 - 17:59 #14
Dennismp - Du må meget gerne opdatere koden (!)....og så give mig en foklaring på det også!;) Hvor skal det placeres, hvordan virker det osv.?
Avatar billede mikaelo Nybegynder
14. april 2004 - 18:15 #15
Et spørgsmål; hvis man vælger at lade brugeren vælge sprog på forsiden, inden han/hun entrere selve siderne, er det blot et spørgsmål om at lave en dansk mappe og en engelsk mappe. Det er ikke dynamisk, men det er måske det letteste i mit tilfælde i og med, at jeg kun har 15 sider ca. De fleste design-mæssige ting styres i forvejen af en CSS, så ændringer osv. på længere sigt, vil kunne foretages her, hvorefter tingene tilrettes på både den danske og den engelske version.

Jeg hælder mest til denne løsning, men har blot ét problem; hvis brugeren vil skifte sprog inde på selve siderne skal man IKKE springe til forsiden, men forblive på den side man befinder sig på. Kan dette laves og hvis ja, hvordan? (eller det er måske det, du er ved at vise mig dennismp, hehe?)
Avatar billede morten-vadskaer Praktikant
14. april 2004 - 18:35 #16
Hvis brugeren undervejs ændrer sproget, kan du sagtens lade ham blive på den pågældende side. Jeg har et JavaScript, der checker browserens sprog, hvis du vil have det. Jeg skal nok vedhæfte tydelige forklaringer. Jeg kan også godt hjælpe dig med selve "sprogskiftet", sådan at brugeren bliver på samme side. Jeg foreslår, at du bruger sessions (Guds gave til php-udviklere) til at gemme brugerens sprogvalg i. Hvis det er sort snak, skal jeg nok lave et eksempel, men hvis Dennismp er i gang med at lave det til dig, gider jeg ikke bruge tid på det.

Så skriv, hvis du gerne vil have en af delene.

Fodnote: Det er utvivlsomt et stort arbejde, at have to sider på forskelligt sprog. Jeg har også overvejet muligheden, med at have al koden et sted og så inkludere teksten. Men da jeg driver en internetbutik, er det rart at afprøve forskellige opsætninger/tilbud/præsentationer/valgmuligher m.m. for brugerne. Når man så har fundet den mest succesrige, kan man jo implementere den på alle siderne => så arbejdet belønner sig i det lange løb.
Avatar billede dennismp Nybegynder
14. april 2004 - 19:05 #17
mikaelo; nej det var det ikke. "Mit" script tjekkede hvad brugerens fortrukne sprog er (via browseren) og så hvis det passede sammen med de sprog hjemmesiden tilbyder, så bliver det sprog valgt. Hvis ikke, bliver der set nærmere på domænet brugeren har (fx. hvis man bruger cybercity.. har man en ....cybercity.dk-adresse) og så vælge det..  Hvis dette også fejler, vil den falde tilbage til et default-sprog.

Hvis dine URLs er fx.
/dansk/about.html
/english/about.html
så kan man snildt lave et lilel klub php der ertatter "dansk" med engelsk og omvendt. Men det kræver at url'ene er ens indenfor hver sprog.

Hvis det ikke er tilfældet, så kan man godt lave et array, som løser problemet.


(jeg har lavet scriptet om, så før disse post efterfølgende. Men det tyder ikke på at det er det du ønsker)
Avatar billede sukos Juniormester
14. april 2004 - 19:25 #18
Når man logger ind her på exp, så sendes man til den side man loggede ind fra.
Lav det enten med cookies eller sessions, eller begge.
Om det viste så kommer fra en txtfil eller fra en DB er jo et fedt
Avatar billede coderdk Praktikant
16. april 2004 - 00:57 #19
php implementerer NLS vha GNU gettext:
  http://dk.php.net/gettext

Her er en editor til at oversætte med:
  http://poedit.sourceforge.net/

En databaseløsning er også fin ;)
Avatar billede mikaelo Nybegynder
16. april 2004 - 11:15 #20
Dennismp - jeg tror jeg vælger den "analoge" løsning med en /dansk og en /engelsk mappe. Url´sne vil være ens ja....eller dvs. filnavnene vil være ens, men de vil jo så befinde sig i to forskellige mapper (egentlig oss´ det du skriver;)

Det lille "klub php" du snakker om (!), hvordan ser det ud og hvor skal det placeres?
Avatar billede dennismp Nybegynder
16. april 2004 - 15:33 #21
"klub" Brain malfunction :)

<?php
$url =  $_SERVER['PHP_SELF'];

if( strpos($url,'/dansk/') !== false  ) {
    # Dansk -> engelsk
    $daurl = $url;
    $enurl = str_replace('/dansk/','/english/', $daurl );
}
else {
    # Engelsk -> dansk
    $enurl = $url;
    $daurl = str_replace('/english/','/dansk/', $enurl );
}

print "DA: $daurl<br>";
print "EN: $enurl<br>";
?>

$daurl vil være den danske url til siden
$enurl vil være den engelsk url til samme side
Avatar billede dennismp Nybegynder
16. april 2004 - 15:35 #22
Du skal placere den sådan, at den bliver kørt på alle de sider, hvor man kan skfite imellem sprogene (nok alle).

Du kan istedet for
print "DA: $daurl<br>";
print "EN: $enurl<br>";

skrive
print '<a href="' .$daurl. '">Dansk</a> ';
print '<a href="' .$enurl. '">International</a> ';
Avatar billede mikaelo Nybegynder
20. april 2004 - 16:25 #23
tester det lige en af dagenen - imens kan du smide et svar;)
Avatar billede dennismp Nybegynder
20. april 2004 - 16:38 #24
joda
Avatar billede keysersoze Ekspert
22. oktober 2004 - 16:43 #25
tak for hjælpen...
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