Pentru a putea vota, modifica pagini sau abona la modificările unei pagini trebuie să fiți autentificați. Cu această ocazie scăpați și de acest mesaj deranjant.

Validare fișiere .po

De la l10n.ro
Versiunea din 11 ianuarie 2009 13:04, autor: Admin (Discuție | contribuții) (Script pentru verificarea validității unui fișier .po)
Salt la: navigare, căutare

Aceasta este o serie de mici programele sau scripturi raportate anterior pe listele de email ale grupului. Fiecare program este distribuit sub o licență proprie. Dacă nu se menționează explicit, programul se găsește în domeniul public.



Script pentru verificarea validității unui fișier .po

 #!/bin/bash
 rasp_conv="d"
 
 echo "----"
 echo "Se verifică fișier: $1"
 echo "----"
 
 #verific Copy text ... here, cauzat de un copy/paste aiurea in LP
 grep "Copy text  " $1 > /dev/null
 if [ $? -eq 0  ]; then
   echo "EROARE: Fișierul conține 'Copy text' - eroare din LP"
   echo ""
 fi
 
 #verific daca are sedila
 #sed nu merge cu unicode... la perl sunt probleme cu locale
 #grep -u "[ŞşŢţ]" $1 #> /dev/null
 cat $1 | perl -pi -e 'exit(1) if /[ŞşŢţ]/'  2>/dev/null
  
 if [ $? -eq 1 ]; then
   echo "INFORMARE: Fișierul conține caractere cu sedilă."
   echo "Doriți să fie convertite la virgulă dedesubt? [D/n]"
   read rasp_conv
   if [ "x$rasp_conv" != "xn" ]; then
     echo "Se efectuează conversia..."
     sed -i "s/ş/ș/g" $1
     sed -i "s/Ş/Ș/g" $1
     sed -i "s/Ţ/Ț/g" $1
     sed -i "s/ţ/ț/g" $1
    echo "Conversie finalizată"
   fi
 fi
 
 #la final verific validitatea fișierului și acceleratorii
 echo "Se verifică validitatea fișierului... "
 msgfmt -v -o /dev/null -c --check-accelerators=_ $1
 
 echo "----"
 echo "Finalizat"

Frecvență apariție cuvinte

Scriptul produce o listă cu toate cuvintele care apar în unul sau mai multe fișiere, și frecvența de apariție. Este util pentru construirea de lexicoane de traducere, testare de dicționare, etc.

Versiune awk:

 #!/bin/awk -f 
 # 
 # Print list of word frequencies 
 # 
 # Save it as wfreq.awk, and run it as: 
 #   ./wfreq.awk file(s) | sort -nr 
 # or as: 
 #    tr A-Z a-z < file | ./wfreq.awk | sort -nr 
 # 
 BEGIN { RS = "[ |\n|\t|<|>|,|.|\"|?|!|:|;|(|)]" } 
 { 
       freq[$0]++
 } 
 
 END { 
    for (word in freq) 
        printf "%d\t%s\n", freq[word], word
 }

Versiune Perl:

 # Save it as wfreq.pl, and run it as: 
 #    perl ./wfreq.pl file(s) | sort -nr 
 # or as: 
 #    tr A-Z a-z < file | perl ./wfreq.pl | sort -nr 
 while (<>) { 
     $freq{$_}++ for split /[ \n\t<>,."?!:;\()|]+/ ;
 } 
 
 print( $freq{$_}, "\t$_\n" ) for keys %freq;

sau Perl oneliner:

perl -ne 'BEGIN { $RS=qr/[ \n\t<>,.\"?!:;\()|]+/; } $freq{$_}++ for split /$RS/; END{print( $freq{$_}, "\t$_\n") for keys %freq }' file[s] | sort -n

Conversie ortografie pre/ante 1993

Scripturile sunt distribuite sub GPL la http://bucovina.chem.tue.nl/reguli_ortografie/index.htm


Program căutare termeni prin traduceri

Distribuit sub GPL sub numele de trascheck, programul poate fi descărcat de la http://sourceforge.net/project/showfiles.php?group_id=144374

Discuția asociată se găsește la http://groups.google.com/group/diacritice/browse_thread/thread/c880eac1513e40b7/6bd64b4d08470371?lnk=gst&q=transcheck#6bd64b4d08470371