site på flere sprog

Tags:    database mysql php

Hej Udvikleren.

Jeg sidder og skal til at lave en side der skal have flere sprog, og tænker så over hvad den bedste/smarteste måde er at gøre det på er.

Jeg tænker at jeg smider alt indhold ind i en database, så hele siden bare består af db udtræk. Er det den smarteste måde at gøre det på, hvis man eventuelt skal tilføje flere sprog senere?



Jeg har ingen erfaring med det, men tjekkede lige google, og han nævnte:
http://www.poedit.net/ :)

Ellers lyder det rimeligt logisk ja, men til menuer o.lign. ville jeg evt. bare have en statisk fil, som man har til andre applikationer.



Den smarteste måde er et meget vidt begreb. Da der nok er lige så mange måder som der er programmører. :)

Men en del holder sig gerne til at have de redigerbare tekster i en database og statisk tekst i eksempelvis .po eller .xml filer. Redigerbare tekster er typisk CMS-tekst, f.eks. produktbeskrivelse mm. Statisk tekst kan være "Læg i indkøbskurv" o.a.



hvis det var mig ville jeg lave en række med "language-id" til tabellen med teksterne og have et index table over dette.. så fx. id = 1 var Dansk, 2 = svensk osv...

så ville det være ret simpelt at lave en query på det.





Jeg har haft god erfaring med GetText -> http://www.gnu.org/s/gettext/

Her er en mindre guide/howto på dansk -> http://www.simon-jensen.net/saadan-oversaetter-du-din-webapplikation.html

Mvh.



Som Mikkel også skriver er GetText rigtigt godt at bruge. Jeg har implementeret det i mit framework så man vælger et "default" sprog som er det sprog du skriver selve siden på (i koden) og ved at bruge et program som f.eks. PoEdit, som Saebekassebil nævner, kan du lynhurtigt få genereret det nødvendige PO og MO filer med oversættelserne.

Det er ikke så let lige at få til at virke i første forsøg, men når det først kører er det også helt perfekt :-)

En herinde nævner noget med at bruge XML filer til oversættelserne - dette er også klart en mulighed, men er ret sikker på at du selv skal ind og skrive et script til at håndtere oversættelserne fra XML filerne - det gør php's GetText for dig - der skal du blot anvende funktionen _($text) til at skrive tekst rundt omkring på siden.

En anden nævner ogås noget med at bruge en database - jeg synes dette er en rigtig dårlig idé da det er en masse unødvendig trafik fra databasen som ikke nødvendigvis får din side til at køre hurtigere.

Jeg mener at have set noget statisik over det på et tidspunkt, og af de nævnte muligheder er GetText den absolut hurtigeste at anvende og hvis du spørger mig også den letteste at anvende.

Håber du kan bruge det til noget :)



Jeg takker for jeres svar, og vil da tage et nærmere kig på GetText, lyder til at det er løsningen man skal bruge.



t