Hi,
I've wrote a simple script to have a snapshot of italian translation
status, module translated, assigned and so on.

This script use some info write on 

   it/Translators 

and some info taked from 

   en/<section>/CVS/Entries


With this scrip you can:

 - check which module is assigned ( a option)

 - check which module is translated 
                                  ( t option)

 - check which module is translated/assigned sorted by collab
                                  ( c option)

 - check if there's new module on en section
                                  ( n option)

 - list module not in sync with  en version
                                  ( d option)


use some temp file on /tmp dir

It's possible to use it on different language section simple translating
message and using <lang>/Translators with additional info like 
 
Directory/File          Translator      Status/EN
========================================================
bookinfo.xml            perugini        T1.13

with 
 - T for translated follow from en revision
 - A for assigned   follow from en revision

That's all.


Luk


P.S:
 you need this tools
 
 bash
 awk
 sed
 grep


On 07 Aug 2001 10:46:25 +0200, Thomas wrote:
> 
> 
> Hojtsy gábor wrote:
> 
> >
> >
> > >>I too think that this is not needed for translations. I can't think
> > of
> > >>any situation where I would use this. An En-version comment
> > >>will be at least usable :))
> > >Whenever I find out a partally translated file, I know at once
> > >which version is was started from, without diff or reading the
> > >whole file.
> >
> > You will now which French version it was. Where it helps you?
> 
> You're right. I use a tag like (proposed by Jeroen I think)
> <!-- up-to-date against phpdoc/en/chapters/security.xml:1.23 -->
> 
> As soon as I have enough files with this tag, I'll write a simple script
> 
> which shows me the priority (which file is farest behind) of "my" files.
> 
> The more users in our language follow this, the more useful it will be
> (but having a system and a common "living" it are different things :).
> 
> Cu,
> Thomas
> 
> 
-- 

________________________________________________________________

 Ing. Luca Perugini                     o Linux Consultant
 Editor PHP Manual Italian language     o mailto:[EMAIL PROTECTED]
 SysAdmin                               o http://www.uisp.it
 SysAdmin                               o http://www.sporty.it
________________________________________________________________
#!/bin/sh
# Check Status of PHP italian translation
#
# Author:       Luca Perugini , <[EMAIL PROTECTED]>
#
#    Copyright (C) 2001  Luca Perugini
#
#    This program is free software; you can redistribute it and/or modify
#    it under the terms of the GNU General Public License as published by
#    the Free Software Foundation; either version 2 of the License, or
#    (at your option) any later version.
#
#    This program is distributed in the hope that it will be useful,
#    but WITHOUT ANY WARRANTY; without even the implied warranty of
#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
#    GNU General Public License for more details.
#
#    You should have received a copy of the GNU General Public License
#    along with this program; if not, write to the Free Software
#
#
# $Id: checkTr,v 1.5 2001/08/07 10:07:07 perugini Exp perugini $
# $Log: checkTr,v $
# Revision 1.5  2001/08/07 10:07:07  perugini
# Added variable for localization
# now it's possible to use it with different language section
#
# Revision 1.4  2001/07/17 17:59:41  perugini
# Report nr module english section
# Fixed some error
#
# Revision 1.3  2001/07/16 17:07:31  perugini
# Fixed missing d options
#
# Revision 1.2  2001/07/16 17:01:27  perugini
# Added GPL license
#
# Revision 1.1  2001/07/16 16:58:13  perugini
# Initial revision
#

# Select and check status of module translated 
# Luca Perugini


# List of english file
list_en=`find en/ -name '*xml' |cut -b4-`
 tot_en=`echo $list_en|wc -w`




#General Def
#Language section
                         lang_transl='it/Translators'

#To update
                            toupdate='AGGIORNARE'

#Translated and differ from en versione 
                          translated='Moduli Tradotti'
                  translated_summary="Riepilogo $translated"
              translated_total_begin="Totale moduli tradotti"
                translated_total_end="su $tot_en"
               translated_table_desc='Nome          Nr moduli Percentuale sul totale'

#Translated and differ from en versione 
                            assigned='Moduli Assegnati'
                    assigned_summary="Riepilogo $assigned"
                assigned_total_begin="Totale moduli assegnati"
                  assigned_total_end="su $tot_en"
                 assigned_table_desc='Nome          Nr moduli Percentuale sul totale'


#Translated and differ from en versione 
                              collab='Moduli ordinati per collaboratori'
                      collab_summary="Riepilogo Moduli Assegnati/Tradotti"
                  collab_total_begin="Totale moduli"
                collab_total_middle1='tradotti e'
                    collab_total_end="assegnati su $tot_en"
                   collab_table_desc='Nome          Nr moduli  trad.  %       ass.   % '


#Translated and differ from en versione 
             translated_diff_from_en="Moduli Tradotti verifica versione en"

#Not found on lang/Translators
             not_found_on_trans_desc="Moduli Non Presenti in $lang_transl"
                  not_found_on_trans="Non presente in $lang_transl"

#Menu section
              menu_module_translated='Moduli tradotti' 
                menu_module_assigned='Moduli assegnati' 
           menu_module_not_on_transl='Moduli non presenti in Translators' 
            menu_module_sort_by_coll='Moduli ordinati per collaboratori' 
 menu_module_translated_diff_from_en='Moduli tradotti: elenca moduli che differiscono dalla versione inglese' 



_cktr(){
   n=`echo $1 |cut -f2 -d '/'`
 dir=`echo $1 |cut -f1 -d '/'`
   t=`grep -w "$n" $lang_transl 1>/dev/null`
 [ $? = 0 ] &&
  {
   a=`grep -w $n $lang_transl |grep T`
   [ $? = 0 ] && b=`echo $a|cut -f2- -d ' '` && echo -n "$1 $b " &&
	{
         [   -d en/$dir ] && h_vr=`grep -w $n en/$dir/CVS/Entries |cut -f3 -d '/'`
         [ ! -d en/$dir ] && h_vr=`grep -w $n en/CVS/Entries |cut -f3 -d '/'`
         t_vr=`grep -w $n $lang_transl|grep T|sed -e 's/\(.*T\)\(.*\)/\2/'`
         [ ! "$h_vr" = "$t_vr" ] && echo "$h_vr $toupdate"
         [   "$h_vr" = "$t_vr" ] && echo "$h_vr "
         }
   } 
 }

_ckass(){
   n=`echo $1 |cut -f2 -d '/'`
 dir=`echo $1 |cut -f1 -d '/'`
   t=`grep -w "$n" $lang_transl 1>/dev/null`
 [ $? = 0 ] &&
  {
   a=`grep -w $n $lang_transl|grep A`
   [ $? = 0 ] && b=`echo $a|cut -f2- -d ' '` && echo -n "$1 $b " &&
	{
         [   -d en/$dir ] && h_vr=`grep -w $n en/$dir/CVS/Entries |cut -f3 -d '/'`
         [ ! -d en/$dir ] && h_vr=`grep -w $n en/CVS/Entries |cut -f3 -d '/'`
         t_vr=`grep -w $n $lang_transl|grep A|sed -e 's/\(.*A\)\(.*\)/\2/'`
         [ ! "$h_vr" = "$t_vr" ] && echo "$h_vr $toupdate"
         [   "$h_vr" = "$t_vr" ] && echo "$h_vr "
         }
   } 
 }

_ck(){
 n=`echo $1 |sed -e 's/\(.*\)\///'`
 t=`grep -w "$n" $lang_transl 1>/dev/null`
 [ $? = 1 ] &&
  echo $1 $not_found_on_trans 
 }

_ckcoll(){
   n=`echo $1 |cut -f2 -d '/'`
 dir=`echo $1 |cut -f1 -d '/'`
   t=`grep -w "$n" $lang_transl 1>/dev/null`
 [ $? = 0 ] &&
  {
   a=`grep -w $n $lang_transl| grep '[TA]'`
   [ $? = 0 ] && b=`echo $a|cut -f2- -d ' '` && echo -n "$1 $b " &&
        {
         [   -d en/$dir ] && h_vr=`grep -w $n en/$dir/CVS/Entries |cut -f3 -d '/'`
         [ ! -d en/$dir ] && h_vr=`grep -w $n en/CVS/Entries |cut -f3 -d '/'`
         t_vr=`grep -w $n $lang_transl|grep '[TA]'|sed -e 's/\(.*[TA]\)\(.*\)/\2/'`
         [ ! "$h_vr" = "$t_vr" ] && echo "$h_vr $toupdate"
         [   "$h_vr" = "$t_vr" ] && echo "$h_vr "
         }
   }
 }

case "$1" in
  d)
    echo $translated_diff_from_en 
    for a in $list_en; do
	 _cktr $a;   
    done |sort -k1 |awk '{ printf "%-40s %-15s %-10s en %-5s %s\n",$1,$2,$3,$4,$5}'>/tmp/tra.out
    [ -f /tmp/tra.out ] && cat /tmp/tra.out |grep "$toupdate"
   ;;
  t)
    echo $translated
    for a in $list_en; do
	 _cktr $a;   
    done |sort -k1 |awk '{ printf "%-40s %-15s %-10s en %-5s %s\n",$1,$2,$3,$4,$5}'>/tmp/tra.out
    [ -f /tmp/tra.out ] && cat /tmp/tra.out &&
      {
       echo
       echo $translated_summary
       echo
       tot=`cat /tmp/tra.out| wc -l`
       echo $translated_total_begin $tot $translated_total_end
       echo
       echo $translated_table_desc 
       for n in `cat /tmp/tra.out |cut -b42-57|sort|uniq`; do
         echo -n $n ' '; 
         par=`grep $n /tmp/tra.out |wc -l`; echo -n $par ' ' ; 
         echo "4 k $par $tot / 100 * p" |dc|sed -e 's/\(.*\.\)\([0-9][0-9]\)\(.*\)/\1\2/'
       done |awk '{ printf "%-15s %-4s     %5s\n",$1,$2,$3}'
       }
   ;;
  a)
    echo 
    echo $assigned
    for a in $list_en; do 
	_ckass $a;  
    done |sort -k1 |awk '{ printf "%-40s %-15s %-10s en %-5s %s\n",$1,$2,$3,$4,$5}' >/tmp/ass.out
    [ -f /tmp/ass.out ] && cat /tmp/ass.out && 
      {

       echo
       echo $assigned_summary
       echo
       tot=`cat /tmp/ass.out| wc -l`
       echo $assigned_total_begin $tot $assigned_total_end 

       echo
       echo $assigned_table_desc
       for n in `cat /tmp/ass.out |cut -b42-57|sort|uniq`; do
         echo -n $n ' ';
         par=`grep $n /tmp/ass.out |wc -l`; echo -n $par ' ' ;
         echo "4 k $par $tot / 100 * p" |dc|sed -e 's/\(.*\.\)\([0-9][0-9]\)\(.*\)/\1\2/'
       done |awk '{ printf "%-15s %-4s     %5s\n",$1,$2,$3}'
       }
   ;;
  n)
    echo 
    echo $not_found_on_trans_desc
    for a in $list_en; do 
	_ck $a;
    done
   ;;
  c)
    echo 
    echo $collab 
    for a in $list_en; do
	 _ckcoll $a;   
    done |sort -k2 |awk '{ printf "%-40s %-15s %-10s en %-5s %s\n",$1,$2,$3,$4,$5}'>/tmp/coll.out
    [ -f /tmp/coll.out ] && cat /tmp/coll.out &&
      {

       echo
       echo $collab_summary 

       echo
       tot=`cat /tmp/coll.out| wc -l`
       tot_tra=`cat /tmp/coll.out|grep T | wc -l`
       tot_ass=`cat /tmp/coll.out|grep A | grep -v T | wc -l`
       echo $collab_total_begin $tot $collab_total_middle $tot_tra $collab_total_middle1 $tot_ass $collab_total_end
       echo
       echo $collab_table_desc
       for n in `cat /tmp/coll.out |cut -b42-57|sort|uniq`; do
         echo -n $n ' '
         par=`grep $n /tmp/coll.out |wc -l`; 
         echo -n $par ' '
         par_tra=`grep $n /tmp/coll.out |grep T  |wc -l`; 
         echo -n $par_tra ' ' 
         par_tra_per=`echo "4 k $par_tra $tot / 100 * p" |dc|sed -e 's/\(.*\.\)\([0-9][0-9]\)\(.*\)/\1\2/'`; 
         echo -n $par_tra_per ' '
         par_ass=`grep $n /tmp/coll.out |grep A | grep -v T  |wc -l`; echo -n $par_ass ' ' ;
         echo    "4 k $par_ass $tot / 100 * p" |dc|sed -e 's/\(.*\.\)\([0-9][0-9]\)\(.*\)/\1\2/'
       done |awk '{ printf "%-15s %-4s     %-4s  %5s    %-4s  %5s\n",$1,$2,$3,$4,$5,$6}'
       }
   ;;
  *)
    echo "checkTr [t,a,n,c,d]"
    echo  
    echo " t :- $menu_module_translated"
    echo " a :- $menu_module_assigned"
    echo " n :- $menu_module_not_on_transl"
    echo " c :- $menu_module_sort_by_coll"
    echo " d :- $menu_module_translated_diff_from_en"
    echo 
    echo " Copyright (C) 2001  Luca Perugini" 
    echo 
   ;;
esac

Reply via email to