Es crea la pàgina amb «== Format == Els fitxers d'idiomes sempre es diuen <b>LDST_''{lang_code}''.xml</b>. On ''{lang_code}'' és el codi de 2 lletres del idioma (Ex: LDST_CA.xml Català, LDST_...».
 
Joan (discussió | contribucions)
Línia 17: Línia 17:
     <verification code={auth_code}>
     <verification code={auth_code}>
</lang>
</lang>
</pre>
Per garantir l'integritat dels fitxers s'ha afegit un  codi de verificació. El codi es calcula fent la XOR dels codis de verificació individuals de totes les linies. Es fa d'aquesta manera ja que si ens permuten l'ordre de les linies dins de cada apartat el fitxer continua sent vàlid. <br/>
La funció per calcular el codi d'una linia funciona de la següent manera:
<pre>
calc_codi_linia(string lloc_linia,string clau,string valor)
  int32 resultat=0
  per cada caracter c en UTF16(lloc_linia)
    resultat=resultat xor c
    rotar_un_bit_esquerra(resultat)
  fi per
 
  resultat=resultat xor 0x55555555;
  per cada caracter c en UTF16(clau)
    resultat=resultat xor c
    rotar_un_bit_esquerra(resultat)
  fi per
  retorn=retorn xor 0xaaaaaaaa;
  per cada caracter c en UTF16(valor)
    resultat=resultat xor c
    rotar_un_bit_esquerra(resultat)
  fi per
 
  retornar resultat
fi funció
</pre>
</pre>

Revisió del 15:37, 3 oct 2012

Format

Els fitxers d'idiomes sempre es diuen LDST_{lang_code}.xml. On {lang_code} és el codi de 2 lletres del idioma (Ex: LDST_CA.xml Català, LDST_ES.xml Espanyol, LDST_ZH.xml Xinès ....)

Les dades estan guardades en format XML i la codificació és UTF-8.

<?xml version="1.0" encoding="utf-8"?>
<lang id={lang_code}>
    <messages>
         <message name={msg_name} value={msg_text}>*
    </messages>
    <forms>
         <form name={form_name}>
              <field name={control_path} value={control_text}/>*
         </form>*
    </forms>
    <verification code={auth_code}>
</lang>

Per garantir l'integritat dels fitxers s'ha afegit un codi de verificació. El codi es calcula fent la XOR dels codis de verificació individuals de totes les linies. Es fa d'aquesta manera ja que si ens permuten l'ordre de les linies dins de cada apartat el fitxer continua sent vàlid.

La funció per calcular el codi d'una linia funciona de la següent manera:

calc_codi_linia(string lloc_linia,string clau,string valor)
  int32 resultat=0

  per cada caracter c en UTF16(lloc_linia)
    resultat=resultat xor c
    rotar_un_bit_esquerra(resultat)
  fi per
  
  resultat=resultat xor 0x55555555;

  per cada caracter c en UTF16(clau)
    resultat=resultat xor c
    rotar_un_bit_esquerra(resultat)
  fi per

  retorn=retorn xor 0xaaaaaaaa;

  per cada caracter c en UTF16(valor)
    resultat=resultat xor c
    rotar_un_bit_esquerra(resultat)
  fi per
  
  retornar resultat
fi funció