Webbutveckling och språkhantering

Tråden skapades och har fått 3 svar. Det senaste inlägget skrevs .
1
  • Medlem
  • Stockholm
  • 2006-09-05 09:21

Hej,

Har fått i uppdrag av arbetsgivaren att undersökai hur man gör en modern och bra lösning för språkhantering i webbapps. Ett önskemål/krav är att HTML och text separeras så HTML-kod bara skrivs en gång och om man behöver lägga till css-klasser eller dylikt så görs sånt bara på ett ställe.

Ta den här exempeltexten

Citat:

Apple Expo 2002

99mac lyckas ta sig in på Apple Expo Paris en dag innan mässan öppnar och presenterar ett bildreportage ifrån mässan. En stor del av världens macsajter publicerar bilderna och våra servrar får svettas. Vårt bildreportage ifrån Steve Jobs keynote och efterföljande mässa blev mycket uppskattat och har varit tradition sedan dess.

Hur ska man lägga upp det för att bara behöva redigera HTML på ett enda ställe men att den ska gå att visas på 10+ olika språk?
Min första approach är att spara olika nycklar i en XML-fil

<root>
   <key id="text1">Apple Expo 2002</key>
   <key id="text2">99mac lyckas ta sig in på Apple Expo Paris en dag innan mässan öppnar och </key>
   <key id="text3">presenterar ett bildreportage ifrån mässan</key>
   <key id="text4">En stor del av världens macsajter publicerar bilderna och våra servrar får svettas.</key>
   <key id="text5">Vårt bildreportage ifrån Steve Jobs keynote</key>
   <key id="text6"> och efterföljande mässa blev mycket uppskattat och har varit tradition sedan dess.</key>
</root>

På så vis kan man sedan skriva HTML helt separerad, tex

<h2><res:get key="root.text1" /></h2>

<p>
   <res:get key="root.text2" />
   <a href="#" class="newsLink"><res:get key="root.text3" /></a>
   <res:get key="root.text4" />
   <a href="#"><res:get key="root.text5" /></a>
   <res:get key="root.text6" />
</p>

Med andra ord måste man göra en nyckel så fort ett ord ska skiljas ut ur en textmassa, tex fetstilt eller kursiverat eller länk vilket känns lite omständigt. Men jag kommer inte på något annat sätt just nu.

Är detta en bra approach? Kom gärna med tips och förslag på andra sätt att lösa det på (HTML ska bara skrivas på ett ställe dock)

UPDATE: lösningen ska gärna fungera så flashfilmer kan ladda in textöversättningar istället för (som nuvarande lösningen fungerar) göra 10+ olika flashfilmer som är identiska förutom en textsträng här och var

Senast redigerat 2006-09-05 09:49
  • Medlem
  • Mölndal
  • 2006-09-05 10:30

Vad använder ni för plattform? Om ni kör ASP.NET finns Enterprise Localization Toolkit
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnaspp/html/entloctoolkit.asp

Även om jag förstår tanken bakom den totala separationen undrar jag lite om det verkligen är värt besväret? Det lilla man sparar i uppdateringsarbete av ev duplicerad HTML-kod tror jag mer än väl kompenseras av knöligheten och svårläsligheten hos den kod som produceras.

Kan man inte göra separationen på en lite högre nivå, t ex att varje artikel e dyl lagras separat översatt till rätt språk? (Inkl ev fetstil osv då)

Du skulle kunna titta på en modul till CMS'et Joomla som heter Joomfish och se hur de löser saken där för att översätta innehåll på en webbsite till flera språk.

http://extensions.joomla.org/component/option,com_mtree/task,viewlink/link_id,460/Itemid,35/

Du kan även kolla i ett Language Pack för Joomla, detta är den svenska översättningen av detta CMS.

http://extensions.joomla.org/component/option,com_mtree/task,viewlink/link_id,295/Itemid,35/

I båda fallen så kan du få lite ideer på hur man löser denna typ av problem, men en annan väg att gå är att istället för att skapa en webbapp - börja med ett CMS och integrerera din webbapp i den - det kallas för wrapper i Joomla.

(Detta kan tolkas som reklam: Kolla gärna här på exempel på hur forumapplikation och bildgalleriapplikation har integrerats i ett CMS: http://cmsdemo.intelligentmammals.se/ )

  • Medlem
  • Stockholm
  • 2006-09-05 11:56

OK, tack för svaren!

Vi använder oss av JSP. Ska läsa vad ni länkat till och bli lite klokare!

1
Bevaka tråden