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

4c79b5
#!/bin/bash
4c79b5
#
4c79b5
# locale_doMessages.sh -- This function standardize centos-art.sh
4c79b5
# localization process using gettext commands.  All messages inside
4c79b5
# centos-art.sh script are written in English language.
4c79b5
#
4c79b5
# Copyright (C) 2009-2010 Alain Reguera Delgado
4c79b5
# 
4c79b5
# This program is free software; you can redistribute it and/or modify
4c79b5
# it under the terms of the GNU General Public License as published by
4c79b5
# the Free Software Foundation; either version 2 of the License, or
4c79b5
# (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
# ----------------------------------------------------------------------
4c79b5
# $Id: locale_doMessages.sh 79 2010-09-18 06:17:44Z al $
4c79b5
# ----------------------------------------------------------------------
4c79b5
4c79b5
function locale_doMessages {
4c79b5
4c79b5
    # Define variables as local to avoid conflicts outside.
4c79b5
    local POT_FILE=$TEXTDOMAINDIR/$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
4c79b5
}