Blame Scripts/Bash/Functions/Locale/locale_doUpdate.sh

4c79b5
#!/bin/bash
4c79b5
#
7655b2
# locale_doUpdate.sh -- This function standardize centos-art.sh
786ebb
# internationalization processes using xml2po and gettext commands.
4c79b5
#
9f5f2e
# Copyright (C) 2009-2011 Alain Reguera Delgado
4c79b5
# 
7cd8e9
# This program is free software; you can redistribute it and/or
7cd8e9
# modify it under the terms of the GNU General Public License as
7cd8e9
# published by the Free Software Foundation; either version 2 of the
7cd8e9
# License, or (at your option) any later version.
4c79b5
# 
4c79b5
# This program is distributed in the hope that it will be useful, but
4c79b5
# WITHOUT ANY WARRANTY; without even the implied warranty of
4c79b5
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
4c79b5
# General Public License for more details.
4c79b5
#
4c79b5
# You should have received a copy of the GNU General Public License
4c79b5
# along with this program; if not, write to the Free Software
4c79b5
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
4c79b5
# USA.
4c79b5
# 
4c79b5
# ----------------------------------------------------------------------
418249
# $Id$
4c79b5
# ----------------------------------------------------------------------
4c79b5
7655b2
function locale_doUpdate {
4c79b5
4c79b5
    # Define variables as local to avoid conflicts outside.
b423b9
    local POT_FILE=$TEXTDOMAINDIR/$(cli_getCurrentLocale)/$TEXTDOMAIN.pot
4c79b5
    local PO_FILE=$TEXTDOMAINDIR/$(cli_getCurrentLocale)/$TEXTDOMAIN.po
4c79b5
    local MO_FILE=$TEXTDOMAINDIR/$(cli_getCurrentLocale)/LC_MESSAGES/$TEXTDOMAIN.mo
4c79b5
    local LANGNAME=$(cli_getLangName $(cli_getCurrentLocale))
4c79b5
    local PO_HEAD_DATE=''
4c79b5
    local PO_HEAD_BUGS=''
4c79b5
4c79b5
    # Output action message.
4c79b5
    cli_printMessage "`gettext "The following translation files will be updated:"`"
4c79b5
    cli_printMessage "$POT_FILE" "AsResponseLine"
4c79b5
    cli_printMessage "$PO_FILE" "AsResponseLine"
4c79b5
    cli_printMessage "$MO_FILE" "AsResponseLine"
4c79b5
    cli_printMessage "`gettext "Do you want to continue?"`" "AsYesOrNoRequestLine"
4c79b5
4c79b5
    # Prepare directory structure for centos-art.sh localization
4c79b5
    # files.
4c79b5
    if [[ ! -d $(dirname $MO_FILE) ]];then
4c79b5
        mkdir -p $(dirname $MO_FILE)
4c79b5
    fi
4c79b5
4c79b5
    # Create portable object template (.pot). 
4c79b5
    find /home/centos/artwork/trunk/Scripts/Bash -name '*.sh' \
4c79b5
        | xargs xgettext --language=Shell --output=$POT_FILE -
4c79b5
4c79b5
    # Create portable object (.po) for the current language.
4c79b5
    if [[ ! -f $PO_FILE ]];then
4c79b5
        msginit --input=$POT_FILE --output=$PO_FILE
4c79b5
    else
4c79b5
        msgmerge --update $PO_FILE $POT_FILE
4c79b5
    fi
4c79b5
4c79b5
    # Update portable object bugs report in its header entries. This
4c79b5
    # entry is removed each time the portable object is generated. To
4c79b5
    # avoid loosing its value, re-define it before editing the portable
4c79b5
    # object (.po) file.
4c79b5
    PO_HEAD_BUGS="\"Report-Msgid-Bugs-To: CentOS Documentation SIG <centos-docs@centos.org>\\\n\""
4c79b5
    sed -i -r "/^\"Report-Msgid-Bugs-To:/c$PO_HEAD_BUGS" $PO_FILE
4c79b5
4c79b5
    # Edit portable object (.po) for the current language. In this
4c79b5
    # step is when translators do their work.
4c79b5
    eval $EDITOR $PO_FILE
4c79b5
4c79b5
    # Update portable object revision date in its header entries.
4c79b5
    PO_HEAD_DATE="\"PO-Revision-Date: $(date "+%Y-%m-%d %H:%M%z")\\\n\""
4c79b5
    sed -i -r "/^\"PO-Revision-Date:/c$PO_HEAD_DATE" $PO_FILE
4c79b5
4c79b5
    # Create machine object (.mo).
4c79b5
    msgfmt $PO_FILE --output=$MO_FILE
4c79b5
3f3263
    # Check repository changes and ask you to commit them up to
3f3263
    # central repository.
3f3263
    cli_commitRepoChanges "$TEXTDOMAINDIR"
3f3263
    
4c79b5
}