diff --git a/Scripts/Bash/Functions/Locale/locale_updateMessageXmlDocbook.sh b/Scripts/Bash/Functions/Locale/locale_updateMessageXmlDocbook.sh new file mode 100755 index 0000000..28ae4a2 --- /dev/null +++ b/Scripts/Bash/Functions/Locale/locale_updateMessageXmlDocbook.sh @@ -0,0 +1,77 @@ +#!/bin/bash +# +# locale_updateMessageXmlDocbook.sh -- This function retrives +# translation messages from Docbook files and creates related portable +# object template for them. +# +# Copyright (C) 2009-2012 The CentOS Project +# +# 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 +# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +# +# ---------------------------------------------------------------------- +# $Id: locale_updateMessageXml.sh 5457 2012-09-11 18:56:18Z al $ +# ---------------------------------------------------------------------- + +function locale_updateMessageXmlDocbook { + + # Print action message. + cli_printMessage "${MESSAGES}.pot" --as-updating-line + + # Define absolute path to Docbook's main file. This file must have + # the same name all in lowercase than its parent directory. + local TEMPLATE=${ACTIONVAL}/$(cli_getRepoName $(basename ${ACTIONVAL}) -f).docbook + + # Verify existence of docbook's main template file. We cannot go + # on without it. + cli_checkFiles ${TEMPLATE} + + # Define file name used as template instance. Here is where we + # expand translation markers and entities before retriving + # translation messages. + local INSTANCE=$(cli_getTemporalFile "$(basename ${TEMPLATE})") + + # Create instance from docbook's main file. + cp ${TEMPLATE} ${INSTANCE} + + # Expand translation markers inside instance. + cli_expandTMarkers ${INSTANCE} + + # Expand system entities definition. + cli_exportFunctions "Render/Docbook/docbook_expandSystemEntities" + docbook_expandSystemEntities ${INSTANCE} + + # Expand license block. + cli_exportFunctions "Render/Docbook/docbook_expandLicenses" + docbook_expandLicenses ${INSTANCE} + + # Create link to `Images' directory for validation to pass. + # Otherwise, a validation error is reported because no path was + # found to images. + ln -s ${TCAR_WORKDIR}/trunk/Identity/Images/Webenv $(dirname ${INSTANCE})/Images + + # Move into temporal directory so paths can be found relatively. + pushd $(dirname ${INSTANCE}) > /dev/null + + # Create portable object template from instance. + xmllint --valid --noent ${INSTANCE} | xml2po -a - \ + | msgcat --output=${MESSAGES}.pot --width=70 --no-location - + + # Move out to initail location. + popd > /dev/null + + # Remove instance. + rm ${INSTANCE} + +}