Validare fișiere .po: Diferență între versiuni
m (corectat cîteva greșeli de tipar) |
Rs (Discuție | contribuții) |
||
Linia 1: | Linia 1: | ||
+ | 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 = | = Script pentru verificarea validității unui fișier .po = | ||
Linia 7: | Linia 12: | ||
echo "Se verifică fișier: $1" | echo "Se verifică fișier: $1" | ||
echo "----" | echo "----" | ||
− | + | ||
#verific Copy text ... here, cauzat de un copy/paste aiurea in LP | #verific Copy text ... here, cauzat de un copy/paste aiurea in LP | ||
grep "Copy text " $1 > /dev/null | grep "Copy text " $1 > /dev/null | ||
Linia 14: | Linia 19: | ||
echo "" | echo "" | ||
fi | fi | ||
− | + | ||
#verific daca are sedila | #verific daca are sedila | ||
#sed nu merge cu unicode... la perl sunt probleme cu locale | #sed nu merge cu unicode... la perl sunt probleme cu locale | ||
#grep -u "[ŞşŢţ]" $1 #> /dev/null | #grep -u "[ŞşŢţ]" $1 #> /dev/null | ||
cat $1 | perl -pi -e 'exit(1) if /[ŞşŢţ]/' 2>/dev/null | cat $1 | perl -pi -e 'exit(1) if /[ŞşŢţ]/' 2>/dev/null | ||
− | + | ||
if [ $? -eq 1 ]; then | if [ $? -eq 1 ]; then | ||
echo "INFORMARE: Fișierul conține caractere cu sedilă." | echo "INFORMARE: Fișierul conține caractere cu sedilă." | ||
Linia 33: | Linia 38: | ||
fi | fi | ||
fi | fi | ||
− | + | ||
#la final verific validitatea fișierului și acceleratorii | #la final verific validitatea fișierului și acceleratorii | ||
echo "Se verifică validitatea fișierului... " | echo "Se verifică validitatea fișierului... " | ||
msgfmt -v -o /dev/null -c --check-accelerators=_ $1 | msgfmt -v -o /dev/null -c --check-accelerators=_ $1 | ||
− | + | ||
echo "----" | echo "----" | ||
echo "Finalizat" | 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, și pot fi găsilte 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 | ||
+ | |||
+ | [[Categorie:Localization]] | ||
[[Categorie:Localization]] | [[Categorie:Localization]] |
Versiunea de la data 10 ianuarie 2009 22:11
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.
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 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, și pot fi găsilte 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