Hoppa direkt till innehåll

Flerspråkigt websystem

2008-08-04 - atlas, databaser, översättningar
Atlas är flerspråkigt i den meningen att alla textsträngar i systemet är på engelska och översätts när dom används till det språk siten är på, så i en listning så kan det avslutas med en knapp som följer:
printbutton(lp("show all"), "/list.php", "buttons/list");
Så funktionen "lp" (kort för "language print" hehe) tar alltså den engelska frasen och översätter det till det språk som siten är på. Behändigt och funktionellt.
Men att ha flera språkversioner för siten för innehållet är i regel lite annorlunda, beroende på hur man vill att det ska administreras. Som det är idag så kan man ha artiklar i flera olika språk kopplat till en site i Atlas. Så man ser en liten flagga och "Läs den här artikeln på engelska" tex, som man kan se här. Detta gäller dock bara artiklar, själva menyn och sådant är inget som man kan ha i olika språkversioner inom samma site. Och det är ju synd. Så hur gör man för att göra ett innehålls-system flerspråkigt på ett enkelt sätt? Jag har funderat på ett par olika tillvägagångsätt

Spara i samma post i databasen

Ett enkelt sätt vore att ha ett speciellt fält i databasen för översättningar av samma databaspost, så att till exempel en post i meny-databasen skulle innehålla fälten "namn", "länk" och "bild" till exempel, sen en post som heter "språk" och en som heter "översättningar". språk-fältet anger vilket språk som de tre första fälten är i och i översättnings-fältet så sparar man språkvariationer av det.
  • Fördelar
  • - Alla översättningar sparas och administreras på samma ställe
  • - Har man hämtat posten (via en listning tex) så har man alltid alla översättningar med i samma förfrågan
  • - Om en viss språkversion inte finns så kan man falla tillbaka på grundposten
  • - Minimalt med ombyggnad i scripten som läser databasen
  • Nackdelar
  • - Med många översättningar så kan det varje post bli rätt så stor
  • - Sökningar på andra språk än grundspråket kan bli svårare beroende på hur det hanteras

Olika poster i samma databas

Ett annat sätt är att språkmärka alla poster med ett språk-fält som ovan och sen bara göra databasförfrågningar på det språk man vill ha.
  • Fördelar
  • - Alla översättningar blir separata enheter i databasen
  • - Databasqueries returnerar alltid bara det språk man vill ha
  • - Sökningar blir alltid helt korrekta
  • Nackdelar
  • - Man kan inte falla tillbaka på ett grundspråk om posten inte finns på ett visst språk
  • - Kräver ombyggnad i nästan alla script på siten
  • - Gör databasen större och därmed långsammare
Det finns ju andra alternativ, som att ha en helt egen tabell i databasen med översättningar för grunddata i andra poster, men i regel så är det mer bökigt än vad man tjänar på det.
Hus skulle du lösa det? Kommentera gärna och ge lite synpunkter och tankar.
Mer i Webblog
Tilt Shift
Reklam i Spotify
Miljvnliga Maccar
Flersprkigt websystem
Dlj emailadresser fr spamrobotar
Husbilssemester
iPhone 3G
Nyckelord: atlas, databaser eller översättningar
Fixa transparenta PNGbilder i Internet Explorer 6
Forum p sandmannet
Rkna tid med PHP
Flersprkigt websystem
jQuery
Skuggor med CSS
Skapa rutor med CSS
Hemma-Spa klart!
Alien: Romulus
Börjar likna en bar!
Reglar på plats
Rivning pågår!
Mjölner!
Örnen börjar bli redo för Sweden Rock
Utebar!
Mixtejp
Norrsken
Kan ha "råkat" skaffa något på Sci-Fi-mässan
Recension: Steam Hotell
Det börjar ta form med hemma-spa:et
Rostfärg och IKEA-lampa
Create a physical book from my digital book
Survey Island
Someone is trying to sell my map!
Julkalender
Myst book updated
Recension: Yasuragi Ryokan Hanare
Recension: Ad Astra
Ny tatuering - midgårdsormen!
Minnestal till en kaffekopp
Förlovade
Sweden Rock 2023
Ny nummerskylt för huset
Fix i husbilen
Grubbelgubbe
Uppdateringar i verkstaden!
Måla med rostfärg
Vårfix i trädgården
Jung Kook
Pappaskämt och annan humor
Bilder på spelbordet när det används
Använda laserskäraren för att skapa innehål...
Julklappar med laserskärare
Budget-Spa
Nyckelskåp
Fjällkaffe
1/20 DeLorean Time Machine
Caso Outdoor Cooler
Minikyl Coca Cola
Verktygsvagn med verktyg, 161 delar
CSS filters for background images
Huset ommålat!
Skiss för tatuering
Spelbordet klart
Laser cutting my Myst Island
We Can Do It
Batwing