[Lazarus] Multilang application and syncing .po files

Tomáš Emresz tomas.emresz at strankysnadno.cz
Tue Jun 19 13:43:13 CEST 2018


Hello,

thanks  for  long  answer,  but - Lazarus generate only .po file ( and
.lrs in output directory). There is no .pot file.

T.E.

úterý 19. června 2018, 13:37:14, napsal jste:

> On 2018-06-19 13:09, Tomáš Emresz via Lazarus wrote:
>> Hello,
>> 
>> i  have  done generating .po files, could translate it through PoEdit,
>> but  -  when  i add some RS or component, Lazarus update only main .po
>> file,  not  .cs.po etc. So could Lazarus update these files too, or is
>> there  any  merge tool for this ? Of course, I understand, that I must
>> translate  this  string  after,  but  this  time,  I  sync  this files
>> manually, which is bad.
>> 
>> Any idea ?

> I'll answer as translator, I do not yet know how Lazarus handles this.

> The programmer should only change the .pot files.

> There are other tools that propagate the changes in the .pot to the
> .po files, which can be used by the programmer (in the Makefile) or
> the translators, using "msgmerge".

> For example, a translator could do:

>   msgmerge --previous --no-wrap --force-po \
>     -U $POFILE -C ../memory.es.po $POTFILE
>   msgfmt --check --stat $POFILE
>   rm messages.mo


> The translator has access to previous translations and memory files
> to do fuzzy automatic translations which you probably as programmer can't.

> The programmer could do:

>   msgmerge --previous --no-wrap --force-po -U $POFILE $POTFILE
>   msgfmt --check --stat $POFILE
>   rm messages.mo

> Notice the missing memory file


> (and repeat for each language)



> A sample script as programmer, for all languages:

> #!/bin/bash

> for FILES in `ls *.po` ;
> do
>     echo
>     echo $FILES
> "-------------------------------------------------------------"
>     echo
>     F=`basename $FILES .po`
>     FF=`basename $F .es`
>     POFILE=$FF.es.po
>     POTFILE=../../00-pot/$FF.pot

>     if test -f $POFILE -a -f $POTFILE; then
>         echo Applying msgmerge to $POFILE
>         msgmerge --previous --no-wrap --force-po -U $POFILE $POTFILE
>         msgfmt --check --stat $POFILE
>         rm messages.mo
>     else
>         echo "Not found: " $POFILE or  $POTFILE
>     fi || { echo "msgmerge --no-wrap --force-po for \"$POTFILE\" failed" ; }

> done


> Of course, you'd have to adapt paths to your situation.





-- 
S pozdravem,
 Tomáš Emresz
 mailto:tomas.emresz at strankysnadno.cz




More information about the Lazarus mailing list