git.schokokeks.org
Repositories
Help
Report an Issue
tor-webwml.git
Code
Commits
Branches
Tags
Suche
Strukturansicht:
c18f0dd52
Branches
Tags
bridges
docs-debian
jobs
master
press-clips
tor-webwml.git
trunk
manpages
po2man.sh
Added 19 FAQ entries
Matt Pagan
commited
c18f0dd52
at 2013-08-26 04:06:05
po2man.sh
Blame
History
Raw
#!/bin/bash # # Author: Runa A. Sandvik, <runa.sandvik@gmail.com> # For The Tor Project, Inc. # # This is Free Software (GPLv3) # http://www.gnu.org/licenses/gpl-3.0.txt # # This script will convert translated po files back to manpages. Before # running the script, checkout the translation directory from # https://svn.torproject.org, and clone the tor repository from # git.torproject.org. # ### Start config ### # Location of the translated manpages translated="$PWD" # Location of the website directory wml="`dirname $translated`" # Location of the English manpages. Assuming that the git clone of the # tor repository is relative to the website mandir="`dirname $wml`/tor/doc" # Location of the po files. Assuming that the translation directory is # relative to the website podir="`dirname $wml`/translation/projects/manpages/po" ### End config ### # Find po files to convert po=`find $podir -type f -name \*.1.po` # For every po found, create and/or update the translated manpage. for file in $po ; do # Validate input and write results to a log file validate_script="/home/runa/tor/translation/tools/validate.py" validate_log="/home/runa/tor/validate/manpages-validate.log" python "$validate_script" -i "$file" -l "$validate_log" # Get the basename of the file we are dealing with pofile=`basename $file` # Strip the file for its original extension and add .txt manfile="${pofile%.*}.txt" # Figure out which language we are dealing with. lang=`dirname $file | sed "s#$podir/##"` # The translated document is written if 80% or more of the po # file has been translated. Also, po4a-translate will only write # the translated document if 80% or more has been translated. # However, it will delete the translated txt if less than 80% # has been translated. To avoid having our current, translated # txt files deleted, convert the po to a temp txt first. If this # file was actually written, rename it to txt. # Convert translated po files back to manpages. function convert { po4a-translate -f text -m "$mandir/$manfile" -p "$file" -l "$translated/$lang/tmp-$manfile" --master-charset utf-8 -L utf-8 # Check to see if the file was written. If yes, rename # it. if [ -e "$translated/$lang/tmp-$manfile" ] then mv "$translated/$lang/tmp-$manfile" "$translated/$lang/$manfile" # If tor.1.po has been translated, we need to # create tor-manual-dev.wml in the correct # language directory. if [ $manfile = "tor.1.txt" ] then if [ ! -e "$wml/docs/$lang/tor-manual-dev.wml" ] then if [ ! -d "$wml/docs/$lang/" ] then mkdir "$wml/docs/$lang/" fi # Copy template file for # tor-manual-dev.wml, and # replace "lang" with the # correct name of the language # directory. cp "$translated/en/tor-manual-dev.wml" "$wml/docs/$lang" sed -i "0,/lang/ s/lang/"$lang"/" "$wml/docs/$lang/tor-manual-dev.wml" fi fi fi } # We have a few cases where the name of the language directory # in the translations module is not equal the name of the # language directory in the website module. # For "zh_CN" use "zh-cn" instead if [ $lang = "zh_CN" ] then lang="zh-cn" convert fi # For "nb" use "no" instead if [ $lang = "nb" ] then lang="no" convert fi # For "sv" use "se" instead if [ $lang = "sv" ] then lang="se" convert fi # Convert everything else if [[ $lang != "zh_CN" && $lang != "nb" && $lang != "sv" ]] then convert fi done