webForumDet fria alternativet

xml-struktur för flera språk?

XML

7 svar · 984 visningar · startad av Klauz

Medlem sedan jan. 2005133 inlägg
Frågan#1

hej,

jag bygger en flashhemsida som får sitt innehåll via xml. sajten ska finnas på 4 språk. nu försöker jag komma på bästa sättet att strukturera upp innehållet för enklast underhåll. så fort sidan uppdateras på svenska så ska man kunna skriva in engelska, tyska och franska-fraserna så smidigt som möjligt.

- detta är min första idé, strukturen går direkt på språk och sedan innehåll. bra för att hålla isär språken, men vill man uppdatera beskrivningen för en maträtt på svenska så blir hoppet ganska långt ner till de andra språken och svårt att hitta för en ovan xml-snickrare (kunden ska kunna uppdatera själv)

<language lang="swe">
      <foodCategory title="Huvudrätter">
            <course>
                 <title>Köttbullar och potatis</title>
                 <description>Delikat rätt bla bla bla bla bla</description>
            </course>
            <course>
                 <title>Lasagne</title>
                 <description>Mumsig rätt bla bla bla bla bla</description>
            </course>
      </foodCategory>
      <foodCategory title="Förrätter">
      </foodCategory>
</language>

<language lang="en">
      <foodCategory title="Main courses">
            <course>
                 <title>Meat balls with potatoes</title>
                 <description>Delicious meal bla bla bla bla bla</description>
            </course>
            <course>
                 <title>Lasagne</title>
                 <description>Crispy bla bla bla bla bla</description>
            </course>
      </foodCategory>
      <foodCategory title="Starters">
      </foodCategory>
</language>

- testade även med att varje post får en språk-tag. allt innehåll kommer tättintill varandra på alla språk, men det blir ändå rörigt.

    <foodCategory>
          <titles>
              <title>Huvudrätter</title>
              <title>Main courses</title>
              <title>Huvudrätter på tyska</title>
              <title>Huvudrätter på franska</title>
           </titles>
         
       
          <courses>
              <course>
                 <titles>
                      <title>Köttbullar och potatis</title>
                      <title>Meat balls and potatoes</title>
                      <title>Tyska köttbullar jawohll</title>
                      <title>Franska petit köttbullar</title>       
                 </titles>
                 <descriptions>
                      <desc>Delikat rätt bla bla bla bla bla</desc>       
                      <desc>Delivous meal bla bla bla bla bla</desc>       
                      <desc>Wunderschön tyska bla bla bla bla bla</desc>
                      <desc>Excellente franska bla bla bla bla bla</desc>
                 </descriptions>
               </course>
              <course>
                 <titles>
                      <title>Lasagne</title>
                      <title>Lasagne in english</title>
                      <title>Tysk lasagne</title>
                      <title>Fransk lasagne</title>       
                 </titles>
                 <descriptions>
                      <desc>Delikat rätt bla bla bla bla bla</desc>       
                      <desc>Delivous meal bla bla bla bla bla</desc>       
                      <desc>Wunderschön tyska bla bla bla bla bla</desc>
                      <desc>Excellente franska bla bla bla bla bla</desc>
                 </descriptions>
               </course>

            </courses>

    </foodCategory>
    <foodCategory>
        <titles>
           <title>Förrätter</title>
           <title>Starters</title>
           <title>Deutsch Förrätt</title>
           <title>Fransk förrätt</title>
           
        </titles>
    </foodCategory>

      <foodCategory title="Main courses">
            <course>
                 <title>Meat balls with potatoes</title>
                 <description>Delicious meal bla bla bla bla bla</description>
            </course>
            <course>
                 <title>Lasagne</title>
                 <description>Crispy bla bla bla bla bla</description>
            </course>
      </foodCategory>
      <foodCategory title="Starters">
      </foodCategory>
</language>

- externa xml-filer för varje språk funkar ju, men där blir steget att uppdatera krånligt när man måste öppna flera filer och leta sig fram till rätt position i alla språk.

inget av dessa förslag känns klockrent så nu behöver jag lite nya sätt att testa med

jäklar vilket långt inlägg. nån som har bra tips/erfarenhet kring detta?

Medlem sedan jan. 20023 327 inlägg
#2

Så här kanske?

    
<foodCategory>
    <titles>
        <title lang="sv_SE ">Huvudrätter</title>
        <title lang="en_US">Main courses</title>
        <title lang="de_DE>Huvudrätter på tyska</title>
        <title lang="fr_FR ">Huvudrätter på franska</title>
    </titles>

   ....
</foodCategory>
Medlem sedan jan. 2005133 inlägg
#3

lang="en_US"
är det någon typ av standard man använder?

hur gör dessa gigantiska webbplatser som har 28 språk till sin sajt? nån som har erfarenhet?

Medlem sedan jan. 20023 327 inlägg
#4

Klauz skrev:

lang="en_US" är det någon typ av standard man använder?

Japp det är ISO och (?) W3c-standard.

http://www.strehle.de/tim/weblog/archives/2004/02/04/260

Medlem sedan juni 20008 205 inlägg
#5

Klauz skrev:

lang="en_US"
är det någon typ av standard man använder?

hur gör dessa gigantiska webbplatser som har 28 språk till sin sajt? nån som har erfarenhet?

Normalt brukar man ha varje språk i en fil så att inte varje besökare ska behöva parsa samtliga 28 språk, och sen ha key/value-par. Typ

[I](lang.sv_SE.xml)[/I]
<lang>
    <phrase key="starter_course">Förrätter</phrase>
    <phrase key="starter_course.mozzarella_tomatos">Mozzarella med tomater</phrase>
    <phrase key="main_course">Huvudrätt</phrase>
    <phrase key="main_course.steak_potatos">Stek med potatis</phrase>
</lang>
[I](lang.en_US.xml)[/I]
<lang>
    <phrase key="starter_course">Starters</phrase>
    <phrase key="starter_course.mozzarella_tomatos">Mozzarella cheese and tomatos</phrase>
    <phrase key="main_course">Main course</phrase>
    <phrase key="main_course.steak_potatos">Steak with potatos</phrase>
</lang>

Sen laddar man en fil som passa användarens språk, och när man vill skriva ut "förrätt" hämtar man frasen "starter_course" från den laddade filen.

Medlem sedan jan. 2005133 inlägg
#6

tack! jag tror jag kör på enskilda xml-filer för varje språk.

om man ska göra en uppdatering för 20 olika språk, finns det då någon enklare metod än att öppna varje xml-fil och uppdatera manuellt?

en annan fråga om denna metod:
<phrase key="main_course.steak_potatos">Steak with potatos</phrase>
vad utgör punkten "." för funktion? är den till för tydlighet och struktur eller har den någon ytterligare funktion?

Medlem sedan juni 20008 205 inlägg
#7

Klauz skrev:

om man ska göra en uppdatering för 20 olika språk, finns det då någon enklare metod än att öppna varje xml-fil och uppdatera manuellt?

Tja, du kan ju hacka ihop ett redigeringsverktyg som visar upp alla språk sida vid sida så att man kan skriva in nya fraser för alla språk på en gång. Eller så kan du göra ett verifieringsprogram som bara kollar att alla fraser finns med i alla filer.

Klauz skrev:

<phrase key="main_course.steak_potatos">Steak with potatos</phrase>
vad utgör punkten "." för funktion? är den till för tydlighet och struktur eller har den någon ytterligare funktion?

Nej, den har ingen "magisk" egenskap, det är bara för tydlighetens skull :)

Medlem sedan jan. 2005133 inlägg
#8

tack!

272 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
130 ms — deklarationer (db)
0 ms — hämta statistik (cache)
139 ms — hämta tråd, inlägg och bilagor (db)
128 ms — ändringar (db)