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 10 ianuarie 2009 22:36, autor: Rs (Discuție | contribuții)
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