Avatar billede lifeweb Nybegynder
30. september 2007 - 12:13 Der er 8 kommentarer og
1 løsning

Sprog-versioner af system

Hej

Jeg skal bygge et system som på sigt skal kunne fremvises i flere forskellige sprog.

Jeg forestillede mig at lave en sprogtabel lign:
language  | key      | value
da        | welcome  | Velkommen
en        | welcome  | Welcome
de        | welcome  | Wilkommen

Er dette den bedste måde at gøre det på, eller er der en smartere?

Næste spørgsmål er så:
Skal jeg hver gang jeg skal bruge en sætning køre en function der læser det ind fra DB, eller kan jeg læse det ind ved login, og derefter bruge det for brugeren?!
Avatar billede ffsoft Praktikant
30. september 2007 - 14:54 #1
Hvis du laver en en til en oversættelse, altså hvert ord oversættes til det tilvarende på et andet sprog, vil du få noget meget morsomme resultater, når ordene bliver sat sammen til en sætning.

I stedet skal du hellere gemme hele afsnit på de forskellige sprog i databasen.

Når brugeren vælger sprog, kan du sætte en sessionsvariabel, som du så kan
teste på hver gang, der skal vises en side.
Avatar billede lifeweb Nybegynder
30. september 2007 - 19:17 #2
jeg vil selvfølgelig ikke kun oversætte ordene, men fraserne i systemet...

mit spørgsmål er hvordan man gør det, så systemet fortsat kører hurtigt...
skal jeg hente tingene fra en database, en tekstfil eller noget helt andet.?
Avatar billede bauerdata Nybegynder
30. september 2007 - 19:22 #3
Avatar billede lifeweb Nybegynder
30. september 2007 - 19:30 #4
jeg har kigget lidt på det - men det besvarer da ikke mig tekniske spørgsmål - gør det?

eller er det bare mig der ikke kan finde det i artiklen
Avatar billede bauerdata Nybegynder
30. september 2007 - 21:11 #5
jeg fandt denne på siden.
http://en.wikipedia.org/wiki/Gettext
Avatar billede ffsoft Praktikant
01. oktober 2007 - 08:57 #6
Som jeg skriver i svaret 30/09-2007 14:54:34 så brug en database, den
er beregnet til at gemme data i.
Du kan evt. lave en tabel for hvert sprog:

tblIndholdDK
tblIndholdUS
tblIndholdDE

strTabel = "tblIndhold" & Session("Sprog")

strSQL = "Select * From " & strTabel & ";"

Koden er ikke testet.
Avatar billede lifeweb Nybegynder
01. oktober 2007 - 09:23 #7
ffsoft:
ok...
vil du så for hver af fraserne køre select-sætningen, eller vil du på en eller anden måde læse tingene ind ved login?
Avatar billede ffsoft Praktikant
01. oktober 2007 - 11:31 #8
Det bliver noget abstrakt når jeg ikke kender strukturen på
hjemmesiden, men tabellerne kunne se sådan ud:

strIndholdxx
  IndholdID (PK)
  Toptekst
  Overskrift01 
  Mellemtekst01
  Overskrift02
  Mellemtekst02
  Overskrift03
  Mellemtekst03
  Bundtekst

strTabel = "tblIndhold" & Session("Sprog")
strSQL = "Select Toptekst,Overskrift01 ... osv ... From " & strTabel & ";"

så åbner du et recordset baseret på SQL udtrykket og der hvor f. eks.
vil have toptekst kan du så skrive:

<div><%=rst("toptekst")%></div>

Dette skal gøres for hver side brugeren åbner.
Avatar billede bauerdata Nybegynder
01. oktober 2007 - 12:37 #9
med getext følger en hel række hjælpeværktøjer til at producere dine oversættlses data.
http://www.gnu.org/software/gettext/manual/gettext.html
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