Avatar billede tommyf Nybegynder
15. oktober 2001 - 17:55 Der er 15 kommentarer og
1 løsning

Oversætte en side til flerer sprog - hvordan gøres det smartest?

Nu er tiden kommer hvor vi gerne ville have www.internetplads.dk oversat til andet end dansk, men hvordan skal det gøres rent programmeringsmæssigt?

Der er jo almindelige html-tekst på alle siderne, samt en del \"response.write\" så det er lidt svært.

Vi har tænkt på at skrive det hele ind i variabler, eller at gemme det i en database, og muligvis XML - men XML kan vi ikke finde ud af, og det andet virker for tungt/besværligt.

Point til den der kommer med det forslag vi vælger at bruge.
Avatar billede radut Nybegynder
15. oktober 2001 - 17:58 #1
det du skal at laver en glabal fil hvor ALLE text\'er er i så includere den på alle de sider hvor de skal bruges.. så er det nemt at ændre sprog.. for så ændre du hvilked sprog fil bliver includeret..

det er et stort arbejde !!!
Avatar billede nute Nybegynder
15. oktober 2001 - 18:00 #2
hvis du/dere ikke kan finne ut av XML, så vil jeg foreslå at du legger all tekst inn i databasen. Deretter skal dere kun bygge deres sider som templates hvor dere på hver side henter ut den tekst dere skal bruke på den siden og setter denne tekst inn i deres template.

/nute
Avatar billede kaptajn_jespersen Nybegynder
15. oktober 2001 - 18:01 #3
Du kan se din side på Tysk på http://www.tranexp.com:2000/InterTran?from=dan&type=url&url=http%3A%2F%2Fwww.internetplads.dk&text=&to=ger prøv og så at oger sætte den til flere sprog!
Avatar billede radut Nybegynder
15. oktober 2001 - 18:02 #4
FX :
LangCommonPage=\"Side \"
LangCommonOf=\" af \"
LangCommonOn=\" fra \"
LangCommonYes=\" Ja \"
LangCommonNo=\" Nej \"
LangCommonHome=\" Tilbage til forsiden \"
LangCommonCategories=\" Kategorier \"
LangCommonViewCart=\" Vis Indkøbskurv \"
LangCommonEmptyCart=\" Tøm Indkøbskurv \"
LangCommonCheckout=\" Til kassen \"
LangCommonSearch=\" Søg \"
LangCommonContinue=\" Næste... \"
LangCommonOrderNow=\"Godkend bestilling\"
LangCommonCancelOrder=\"Annuller bestilling\"
LangCommonReset=\"Ryd felter\"
LangCommonSelect=\"Vælg\"
LangCommonView=\"Vis\"
LangCommonEdit=\"Ret\"
Avatar billede tommyf Nybegynder
15. oktober 2001 - 18:05 #5
radut >> Men det er jo også variabler som vi havde overvejet. Men det er jo ekstrem kompliceret/næsten umuligt når vi så skal oversætte en variabel før den udskrives.

Nogen steder bruger vi felterne fra databasen som navn - dem kan vi ikke oversætte på den måde.
Avatar billede radut Nybegynder
15. oktober 2001 - 18:08 #6
hvad er det for nogle felter fra databasen ?
Avatar billede tommyf Nybegynder
15. oktober 2001 - 18:11 #7
Ups, ikke felter - kolonner, vi bruger kolonnernes navne nogle steder.
De navne er på dansk, og en englænder ville ikke forstå noget af det.
Avatar billede radut Nybegynder
15. oktober 2001 - 18:17 #8
hvad skal du med kolonner navnet ?
Avatar billede nute Nybegynder
15. oktober 2001 - 18:20 #9
tommy >> fra et site jeg har vært med å bygge, som for øyeblikket kjører på 9 språk, har vi en database som er rimelig simpel:

ID
PHRASE
TRANSLATION
COUNTRY

Det vi har gjort, er å bygge disse såkalte templates, som kan fx se sånn ut:

<html><body>
<table>
<tr><td><%= translate( \"LOGIN\", country ) %></td></tr>
<tr><td><%= translate( \"LEAVE_SITE\", country ) %></td></tr>
</table>
</body>
</html>

Din translate funksjon ser fx sånn ut:

function translate( phrase, country )
  Dim SQL, returnValue
  SQL = \"SELECT TRANSLATION FROM tabell WHERE PHRASE = \'\" & phrase & \"\' AND COUNTRY = \'\" & country & \"\'\"
  Set RS = Conn.Execute( SQL )
  if( NOT RS.EOF ) then
    returnValue = RS(\"TRANSLATION\")
  else
    returnValue = null
  end if
  RS.close
  Set RS = nothing
  translate = returnValue
end function

Dermed kan dere bygge deres side uten å legge så mye som en eneste tekstbit inn

u c my point ?

/nute
Avatar billede tommyf Nybegynder
15. oktober 2001 - 18:21 #10
Den løber igennem en løkke hvor den så laver de check-bokse, kolonnenavnene står ude til venstre for boksene.
http://www.internetplads.dk/soeg.asp
Avatar billede tommyf Nybegynder
15. oktober 2001 - 18:31 #11
Nute >> Yes I do.

Der er stadig nogle ting der ikke ville kunne virke - men det er fordi vi har prøvet at fremtidssikrer det, så man hurtigt kunne tilføje nye kolonner.
Det kan godt være at vi skal til at lave en del om før vi har en chance for at oversætte det, me vi håbede der var et eller andet virkelig genialt.
Avatar billede nute Nybegynder
15. oktober 2001 - 19:04 #12
tommyf >> det er jo det som er \"genialt\" med dette systemet. Man skal ikke tilføje noen kolonner i det hele tatt. Det *er* \"fremdtidssikret\"
Avatar billede tommyf Nybegynder
19. oktober 2001 - 17:21 #13
Desværre - var godt klar over at det nok ikke kunne lade sig gøre på den måde siden var lavet, men man har vel lov til at håbe.

Så det bliver 2 sider som bruger samme database - så er det bare lidt svært hvis der skal rettes noget i koden.
Avatar billede tdaugaard Nybegynder
21. oktober 2001 - 20:43 #14
Det der med at hente det fra en database synes jeg er en MEGET dårlig idé... ethvert normalt site plejer ikke at ville belaste sin database mere end højst nødvendigt, men når der skal hentes tekst flere steder på en side HVER gang en side loades .. så trækker det en del.
Avatar billede nute Nybegynder
21. oktober 2001 - 20:53 #15
tdaugaard >> det er nok like mange måter å oversette sitt site til flere språk som det er å stå ut av sin seng. XML er en av måtene, som allerede har blitt \"avvist\", hente data hver gang er en annen måte, bygge systemer som genererer sider, caching av sider osv, osv. JEg er *helt* enig i at å dykke ned i databasen hver eneste gang man får et request er rimelig heavy, men det er iallefall en steg i riktig retning (mener jeg). Når man først finner en metode som fungerer for en selv og ens site, så kan man starte med optimalisering.

/nute
Avatar billede tdaugaard Nybegynder
21. oktober 2001 - 21:04 #16
nute, jeg har selv siddet med selv samme spørgsmål som det tommyf fremstiller her - i PHP dog, men det gør ingen forskel - og der bruger jeg metoden med at lægge hver unik tekst i en varibel der ligger i en fil der hedder language.php i f.eks. mappen /lang/dk/. f.eks.:

$lang_login_username = \"Brugernavn:\";
.. osv ..

alt efter om man går ind på et .com, .nu eller .dk domæne for 3rdlevel.dk (det site jeg har lavet det på) så inkluderer den f.eks.

/lang/dk/language.php

for .dk domæner i toppen af alle sider og der hvor jeg vil have f.eks. \"Brugernavn:\" at stå skriver jeg:

<?=$lang_login_username?>

og til fejlbeskeder bruger jeg et array osv.. meget nemt.
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
Kurser inden for grundlæggende programmering

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