From 79e54dc2c4d96d12c9550bfd33e6e0663c94afb6 Mon Sep 17 00:00:00 2001 From: Alain Reguera Delgado Date: Feb 08 2011 20:06:02 +0000 Subject: Remove specific translation marker replacements, translation marker replacement will be done using common translation marker replacements. --- diff --git a/Scripts/Bash/Functions/Render/render_doIdentityImageDm.sh b/Scripts/Bash/Functions/Render/render_doIdentityImageDm.sh index 07844a8..314fc86 100755 --- a/Scripts/Bash/Functions/Render/render_doIdentityImageDm.sh +++ b/Scripts/Bash/Functions/Render/render_doIdentityImageDm.sh @@ -155,7 +155,7 @@ function render_doIdentityImageDm { # Replace common translation markers from design model # files with appropriate information. if [[ $COUNT =~ '^(3|4)$' ]];then - cli_doTMarkersCommons "${DST[$COUNT]}" + cli_replaceTMarkers "${DST[$COUNT]}" fi # Increment counter. diff --git a/Scripts/Bash/Functions/Render/render_doIdentityImageKsplash.sh b/Scripts/Bash/Functions/Render/render_doIdentityImageKsplash.sh index 73a194d..83379d7 100755 --- a/Scripts/Bash/Functions/Render/render_doIdentityImageKsplash.sh +++ b/Scripts/Bash/Functions/Render/render_doIdentityImageKsplash.sh @@ -72,6 +72,6 @@ function render_doIdentityImageKsplash { cp ${SRC[4]} ${DST[4]} # Apply common translation markers to Theme.rc file. - cli_doTMarkersCommons "${DST[4]}" + cli_replaceTMarkers "${DST[4]}" } diff --git a/Scripts/Bash/Functions/Render/render_getIdentityDefs.sh b/Scripts/Bash/Functions/Render/render_getIdentityDefs.sh index 475fb9f..9bdd279 100644 --- a/Scripts/Bash/Functions/Render/render_getIdentityDefs.sh +++ b/Scripts/Bash/Functions/Render/render_getIdentityDefs.sh @@ -350,6 +350,6 @@ function render_getIdentityDefs { cat $TEMPLATE > $INSTANCE # Replace translation markers with appropriate information. - cli_doTMarkers + cli_replaceTMarkers } diff --git a/Scripts/Bash/Functions/cli_doTMarkerCommons.sh b/Scripts/Bash/Functions/cli_doTMarkerCommons.sh deleted file mode 100755 index b0711d1..0000000 --- a/Scripts/Bash/Functions/cli_doTMarkerCommons.sh +++ /dev/null @@ -1,146 +0,0 @@ -#!/bin/bash -# -# cli_doTMarkers.sh -- This function standardizes -# replacements for common translation markers. Raplacements are -# applied to temporal instances used to produce the final file. -# -# Copyright (C) 2009-2011 Alain Reguera Delgado -# -# 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 -# USA. -# -# ---------------------------------------------------------------------- -# $Id$ -# ---------------------------------------------------------------------- - -function cli_doTMarkersCommons { - - # Initialize variables. - local -a SRC - local -a DST - local COUNT=0 - local COUNTSRC=0 - local COUNTDST=0 - local LOCATION='' - - # Define source location on which sed replacements take place. By - # default we use the value of INSTANCE variable, but if $1 is not - # empty assume $1 as source location on which sed replacements - # take place. This makes possible to reuse this function on - # different source locations. - if [[ "$1" != '' ]];then - LOCATION="$1" - else - LOCATION="${INSTANCE}" - fi - - # Verify source location file. - cli_checkFiles "$LOCATION" 'f' - - # Define translation markers. The translation marker definition - # order is important. Note that when we render concept directory - # structure, we make two replacements to produce the final - # copyright note. First, we replace =COPYRIGHT= translation marker - # and later the =THEMENAME= translation maker (not the oposite). - SRC[0]='=COPYRIGHT=' - SRC[1]='=DESCRIPTION=' - SRC[2]='=LICENSE=' - SRC[3]='=LICENSE_URL=' - SRC[4]='=THEME=' - SRC[5]='=THEMENAME=' - SRC[6]='=THEMERELEASE=' - SRC[7]='=RELEASE=' - SRC[8]='=MAJOR_RELEASE=' - SRC[9]='=MINOR_RELEASE=' - SRC[10]='=URL=' - SRC[11]='=ARCH=' - SRC[12]='=URL_WIKI=' - SRC[13]='=URL_LISTS=' - SRC[14]='=URL_FORUMS=' - SRC[15]='=URL_MIRRORS=' - SRC[16]='=URL_DOCS=' - - # Define replacements for translation markers. - DST[0]="$(cli_getCopyrightInfo '--copyright')" - DST[1]="$(cli_getCopyrightInfo '--description')" - DST[2]="$(cli_getCopyrightInfo '--license')" - DST[3]="$(cli_getCopyrightInfo '--license-url')" - DST[4]="$(cli_getPathComponent "$FILE" '--theme')" - DST[5]="$(cli_getPathComponent "$FILE" '--theme-name')" - DST[6]="$(cli_getPathComponent "$FILE" '--theme-release')" - DST[7]="$(cli_getPathComponent "$FILE" '--release')" - DST[8]="$(cli_getPathComponent "$FILE" '--release-major')" - DST[9]="$(cli_getPathComponent "$FILE" '--release-minor')" - DST[10]="http://$(cli_getCurrentLocale).centos.org/" - DST[11]="$(cli_getPathComponent "$FILE" '--architecture')" - DST[12]="=URL=wiki/" - DST[13]="=URL=lists/" - DST[14]="=URL=forums/" - DST[15]="=URL=mirrors/" - DST[16]="=URL=docs/" - - # Do replacement of nested translation markers. - while [[ $COUNTDST -lt ${#DST[@]} ]];do - - # Verify existence of translation markers. If there is no - # translation marker on replacement, continue with the next - # one in the list. - if [[ ! ${DST[$COUNTDST]} =~ '=[A-Z_]+=' ]];then - # Increment destination counter. - COUNTDST=$(($COUNTDST + 1)) - # The current replacement value doesn't have translation - # marker inside, so skip it and evaluate the next - # replacement value in the list. - continue - fi - - while [[ $COUNTSRC -lt ${#SRC[*]} ]];do - - # Update replacements. - DST[$COUNTDST]=$(echo ${DST[$COUNTDST]} \ - | sed -r "s!${SRC[$COUNTSRC]}!${DST[$COUNTSRC]}!g") - - # Increment source counter. - COUNTSRC=$(($COUNTSRC + 1)) - - done - - # Reset source counter - COUNTSRC=0 - - # Increment destination counter. - COUNTDST=$(($COUNTDST + 1)) - - done - - # Apply replacements for translation markers. - while [[ ${COUNT} -lt ${#SRC[*]} ]];do - - # Use sed to replace translation markers inside the design - # model instance. - sed -r -i "s!${SRC[$COUNT]}!${DST[$COUNT]}!g" ${LOCATION} - - # Increment counter. - COUNT=$(($COUNT + 1)) - - done - - # Unset specific translation markers and specific replacement - # variables in order to clean them up. Otherwise, undesired values - # may ramain from one file to another. - unset SRC - unset DST - -} diff --git a/Scripts/Bash/Functions/cli_doTMarkerSpecific.sh b/Scripts/Bash/Functions/cli_doTMarkerSpecific.sh deleted file mode 100755 index 1048199..0000000 --- a/Scripts/Bash/Functions/cli_doTMarkerSpecific.sh +++ /dev/null @@ -1,71 +0,0 @@ -#!/bin/bash -# -# cli_doTMarkersSpecifics.sh -- This function -# standardizes replacements for specific translation markers. -# Raplacements are applied to temporal instances used to produce the -# final file. -# -# Copyright (C) 2009-2011 Alain Reguera Delgado -# -# 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 -# USA. -# -# ---------------------------------------------------------------------- -# $Id$ -# ---------------------------------------------------------------------- - -function cli_doTMarkersSpecifics { - - # Initialize variables. - local -a SRC - local -a DST - local COUNT=0 - - # Initialize specific translation markers (SRC) variable, and - # replacement (DST) variable using the appropriate translation - # file as reference. - cli_checkFiles ${TRANSLATION} 'f' - cli_checkFiles ${TRANSLATION} 'x' - - # Initialize action-specific functions. - . $TRANSLATION - - # Execute function to retrive specific translation markers and - # specific replacement values. - eval render_loadConfig - - # Apply specific replacements for specific translation markers. - while [[ ${COUNT} -lt ${#SRC[*]} ]];do - - # Escape the character used as separator inside sed's - # replacement command. - DST[$COUNT]=$(echo ${DST[$COUNT]} | sed -r 's/!/\\!/g' ) - - # Use sed to replace specific translation markers inside the - # design model instance. - sed -r -i "s!${SRC[$COUNT]}!${DST[$COUNT]}!g" $INSTANCE - - # Increment counter. - COUNT=$(($COUNT + 1)) - - done - - # Unset specific translation markers and specific replacement - # variables in order to clean them up. Otherwise, undesired values - # may ramain from one file to another. - unset SRC - unset DST - -} diff --git a/Scripts/Bash/Functions/cli_doTMarkers.sh b/Scripts/Bash/Functions/cli_doTMarkers.sh deleted file mode 100755 index 654a5a1..0000000 --- a/Scripts/Bash/Functions/cli_doTMarkers.sh +++ /dev/null @@ -1,41 +0,0 @@ -#!/bin/bash -# -# cli_doTMarkers.sh -- This function standardizes -# replacements for both specific and common translation markers. This -# function must be called from render_getIdentityDefs.sh function -# (after instance creation and before final file creation). -# Raplacements are applied to temporal instances used to produce the -# final file. -# -# Copyright (C) 2009-2011 Alain Reguera Delgado -# -# 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 -# USA. -# -# ---------------------------------------------------------------------- -# $Id$ -# ---------------------------------------------------------------------- - -function cli_doTMarkers { - - # Apply specific replacements for specific translation markers. - if [[ $TRANSLATIONPATH != '' ]] && [[ -f $TRANSLATION ]];then - cli_doTMarkersSpecifics - fi - - # Apply common replacements for common translation markers. - cli_doTMarkersCommons - -} diff --git a/Scripts/Bash/Functions/cli_replaceTMarkers.sh b/Scripts/Bash/Functions/cli_replaceTMarkers.sh new file mode 100755 index 0000000..8614a28 --- /dev/null +++ b/Scripts/Bash/Functions/cli_replaceTMarkers.sh @@ -0,0 +1,146 @@ +#!/bin/bash +# +# cli_replaceTMarkers.sh -- This function standardizes +# replacements for common translation markers. Raplacements are +# applied to temporal instances used to produce the final file. +# +# Copyright (C) 2009-2011 Alain Reguera Delgado +# +# 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 +# USA. +# +# ---------------------------------------------------------------------- +# $Id$ +# ---------------------------------------------------------------------- + +function cli_replaceTMarkers { + + # Initialize variables. + local -a SRC + local -a DST + local COUNT=0 + local COUNTSRC=0 + local COUNTDST=0 + local LOCATION='' + + # Define source location on which sed replacements take place. By + # default we use the value of INSTANCE variable, but if $1 is not + # empty assume $1 as source location on which sed replacements + # take place. This makes possible to reuse this function on + # different source locations. + if [[ "$1" != '' ]];then + LOCATION="$1" + else + LOCATION="${INSTANCE}" + fi + + # Verify source location file. + cli_checkFiles "$LOCATION" 'f' + + # Define translation markers. The translation marker definition + # order is important. Note that when we render concept directory + # structure, we make two replacements to produce the final + # copyright note. First, we replace =COPYRIGHT= translation marker + # and later the =THEMENAME= translation maker (not the oposite). + SRC[0]='=COPYRIGHT=' + SRC[1]='=DESCRIPTION=' + SRC[2]='=LICENSE=' + SRC[3]='=LICENSE_URL=' + SRC[4]='=THEME=' + SRC[5]='=THEMENAME=' + SRC[6]='=THEMERELEASE=' + SRC[7]='=RELEASE=' + SRC[8]='=MAJOR_RELEASE=' + SRC[9]='=MINOR_RELEASE=' + SRC[10]='=URL=' + SRC[11]='=ARCH=' + SRC[12]='=URL_WIKI=' + SRC[13]='=URL_LISTS=' + SRC[14]='=URL_FORUMS=' + SRC[15]='=URL_MIRRORS=' + SRC[16]='=URL_DOCS=' + + # Define replacements for translation markers. + DST[0]="$(cli_getCopyrightInfo '--copyright')" + DST[1]="$(cli_getCopyrightInfo '--description')" + DST[2]="$(cli_getCopyrightInfo '--license')" + DST[3]="$(cli_getCopyrightInfo '--license-url')" + DST[4]="$(cli_getPathComponent "$FILE" '--theme')" + DST[5]="$(cli_getPathComponent "$FILE" '--theme-name')" + DST[6]="$(cli_getPathComponent "$FILE" '--theme-release')" + DST[7]="$(cli_getPathComponent "$FILE" '--release')" + DST[8]="$(cli_getPathComponent "$FILE" '--release-major')" + DST[9]="$(cli_getPathComponent "$FILE" '--release-minor')" + DST[10]="http://$(cli_getCurrentLocale).centos.org/" + DST[11]="$(cli_getPathComponent "$FILE" '--architecture')" + DST[12]="=URL=wiki/" + DST[13]="=URL=lists/" + DST[14]="=URL=forums/" + DST[15]="=URL=mirrors/" + DST[16]="=URL=docs/" + + # Do replacement of nested translation markers. + while [[ $COUNTDST -lt ${#DST[@]} ]];do + + # Verify existence of translation markers. If there is no + # translation marker on replacement, continue with the next + # one in the list. + if [[ ! ${DST[$COUNTDST]} =~ '=[A-Z_]+=' ]];then + # Increment destination counter. + COUNTDST=$(($COUNTDST + 1)) + # The current replacement value doesn't have translation + # marker inside, so skip it and evaluate the next + # replacement value in the list. + continue + fi + + while [[ $COUNTSRC -lt ${#SRC[*]} ]];do + + # Update replacements. + DST[$COUNTDST]=$(echo ${DST[$COUNTDST]} \ + | sed -r "s!${SRC[$COUNTSRC]}!${DST[$COUNTSRC]}!g") + + # Increment source counter. + COUNTSRC=$(($COUNTSRC + 1)) + + done + + # Reset source counter + COUNTSRC=0 + + # Increment destination counter. + COUNTDST=$(($COUNTDST + 1)) + + done + + # Apply replacements for translation markers. + while [[ ${COUNT} -lt ${#SRC[*]} ]];do + + # Use sed to replace translation markers inside the design + # model instance. + sed -r -i "s!${SRC[$COUNT]}!${DST[$COUNT]}!g" ${LOCATION} + + # Increment counter. + COUNT=$(($COUNT + 1)) + + done + + # Unset specific translation markers and specific replacement + # variables in order to clean them up. Otherwise, undesired values + # may ramain from one file to another. + unset SRC + unset DST + +}