Min lösning (som jag tycker fungerar rätt bra) är att:
1. Använda xml-filer för all statiskt innehåll på sidan, menyer, bakåtknappar, felmeddelanden och
2. Databas språksorterad för dynamiskt innehåll som t.ex. nyheter, artiklar, etc.
Självklart beror det lite på applikationen eller sidan hur man lägger upp det men en enkel lösning är t.ex.
Kod:
<rubrik>
<sv>Hej</sv>
<en>Hello</en>
</rubrik>
då räcker de med att använda t.ex. $xml->rubrik->$lang för att konsekvent sätta språket på alla sidor om man sätter $lang till språket. Databasen kan exempelvis se ut som (med psuedo-sql)
Kod:
CREATE TABLE nyhet (
id INT,
sv VARCHAR,
en VARCHAR
)
så att man även här kan använda $lang.
Därmed blir språken skalbara (ta bort och lägga till språk kan t.o.m. då enkelt skötas via ett CMS för ändamålet) och att kontrollera att det är ordning på språken är rätt enkelt. Alltså i princip Teknik 2 tillsammans med en Teknik 5, dvs. xml för relativt statiskt innehåll.
Den sämsta lösningen är naturligvis att använda if-loopar med hårdkodad text. Blir enormt oöverskådligt och svårt att handera.