Validare fișiere .po: Diferență între versiuni
| (Nu s-au afișat 14 versiuni intermediare efectuate de alți 6 utilizatori) | |||
| Linia 1: | Linia 1: | ||
| − | + | Aceasta este o serie de mici progrămele, sau scripturi raportate anterior pe listele de e-mail 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 = | |
| − | |||
| − | echo "----" | + | <source lang=bash> |
| − | echo "Se | + | #!/bin/bash |
| − | echo "----" | + | rasp_conv="d" |
| + | |||
| + | echo "----" | ||
| + | echo "Se verifică fișier: $1" | ||
| + | echo "----" | ||
| + | |||
| + | #verific Copy text ... here, cauzat de un copy/paste aiurea în 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 dacă are sedilă | ||
| + | #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" | ||
| + | </source> | ||
| + | |||
| + | =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: | ||
| + | <source lang=bash> | ||
| + | #!/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 | ||
| + | } | ||
| + | </source> | ||
| + | |||
| + | Versiune Perl: | ||
| + | <source lang=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; | ||
| + | |||
| + | </source> | ||
| + | sau Perl oneliner: | ||
| + | |||
| + | <source lang=perl> | ||
| + | perl -ne 'BEGIN { $RS=qr/[ \n\t<>,.\"?!:;\()|]+/; } $freq{$_}++ for split /$RS/; END{print( $freq{$_}, "\t$_\n") for keys %freq }' file[s] | sort -n | ||
| + | </source> | ||
| + | |||
| + | =Conversie ortografie pre/ante 1993= | ||
| + | |||
| + | Scripturile sunt distribuite sub GPL la http://bucovina.chem.tue.nl/reguli_ortografie/index.htm | ||
| + | |||
| + | = Proiectul msgextras = | ||
| + | |||
| + | Diverse scripturi și utilitare pentru traducători. | ||
| + | |||
| + | Disponibil direct la http://users.alioth.debian.org/~eddyp-guest/darcs/msgextras/ | ||
| + | |||
| + | sau prin darcs: | ||
| + | |||
| + | darcs get http://users.alioth.debian.org/~eddyp-guest/darcs/msgextras/ | ||
| + | |||
| + | Licența pentru msgextras este MIT, dacă nu se precizează o alta în sursă. | ||
| + | |||
| + | == msgdiacr: Script pentru verificarea și/sau conversia automată la diacriticele corecte (.po) == | ||
| + | |||
| + | Parte din msgextras, msgdiacr poate verifica și converti automat unul sau mai multe fișiere .po să folosească diacriticele corecte. | ||
| + | |||
| + | * verifică faptul că .po-ul este codat în utf-8 înainte de a încerca conversia | ||
| + | * evidențiază la verificare liniile care conțin diacriticele vechi | ||
| + | * poate verifica și/sau converti mai multe fișiere odată | ||
| + | * la conversie creează copii de siguranță pentru fiecare din fișierele convertite | ||
| + | |||
| + | |||
| + | Disponibil direct la http://users.alioth.debian.org/~eddyp-guest/darcs/msgextras/msgdiacr | ||
| + | |||
| + | |||
| + | sau ca parte din msgextras: | ||
| + | |||
| + | darcs get http://users.alioth.debian.org/~eddyp-guest/darcs/msgextras/ | ||
| + | |||
| + | |||
| + | == msgstat: Script care poate verifica validitatea fișierelor .po și afișa statistici despre ele == | ||
| + | Parte din msgextras, msgstat poate verifica corectitudinea sintactică a unuia sau mai multor fișiere .po, oferind și statistici depre acestea. | ||
| − | + | * poate verifica oricât de multe fișiere odată | |
| − | + | * oferă statistici pentru fiecare dintre ele | |
| − | |||
| − | |||
| − | |||
| − | |||
| − | + | Disponibil direct la http://users.alioth.debian.org/~eddyp-guest/darcs/msgextras/msgstat | |
| − | |||
| − | |||
| − | |||
| − | + | sau ca parte din proiectul msgextras: | |
| − | |||
| − | |||
| − | |||
| − | |||
| − | + | darcs get http://users.alioth.debian.org/~eddyp-guest/darcs/msgextras/ | |
| − | + | ||
| − | + | =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 | |
| − | |||
| − | |||
| − | + | [[Categorie:Localizare]] | |
| − | + | [[Categorie:Programare]] | |
Versiunea curentă din 20 noiembrie 2009 16:33
Aceasta este o serie de mici progrămele, sau scripturi raportate anterior pe listele de e-mail ale grupului. Fiecare program este distribuit sub o licență proprie. Dacă nu se menționează explicit, programul se găsește în domeniul public.
Cuprins
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 în 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 dacă are sedilă
#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 -nConversie ortografie pre/ante 1993
Scripturile sunt distribuite sub GPL la http://bucovina.chem.tue.nl/reguli_ortografie/index.htm
Proiectul msgextras
Diverse scripturi și utilitare pentru traducători.
Disponibil direct la http://users.alioth.debian.org/~eddyp-guest/darcs/msgextras/
sau prin darcs:
darcs get http://users.alioth.debian.org/~eddyp-guest/darcs/msgextras/
Licența pentru msgextras este MIT, dacă nu se precizează o alta în sursă.
msgdiacr: Script pentru verificarea și/sau conversia automată la diacriticele corecte (.po)
Parte din msgextras, msgdiacr poate verifica și converti automat unul sau mai multe fișiere .po să folosească diacriticele corecte.
- verifică faptul că .po-ul este codat în utf-8 înainte de a încerca conversia
- evidențiază la verificare liniile care conțin diacriticele vechi
- poate verifica și/sau converti mai multe fișiere odată
- la conversie creează copii de siguranță pentru fiecare din fișierele convertite
Disponibil direct la http://users.alioth.debian.org/~eddyp-guest/darcs/msgextras/msgdiacr
sau ca parte din msgextras:
darcs get http://users.alioth.debian.org/~eddyp-guest/darcs/msgextras/
msgstat: Script care poate verifica validitatea fișierelor .po și afișa statistici despre ele
Parte din msgextras, msgstat poate verifica corectitudinea sintactică a unuia sau mai multor fișiere .po, oferind și statistici depre acestea.
- poate verifica oricât de multe fișiere odată
- oferă statistici pentru fiecare dintre ele
Disponibil direct la http://users.alioth.debian.org/~eddyp-guest/darcs/msgextras/msgstat
sau ca parte din proiectul msgextras:
darcs get http://users.alioth.debian.org/~eddyp-guest/darcs/msgextras/
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