From e589f9e044f0125b53f8aa51a8a8da109c42cbdc Mon Sep 17 00:00:00 2001 From: Alain Reguera Delgado Date: Dec 11 2013 19:33:14 +0000 Subject: Merge branch 'tcar-scripts-render' into tcar --- diff --git a/Documentation/Manpages/Locales/en_US/render.asciidoc.po b/Documentation/Manpages/Locales/en_US/render.asciidoc.po new file mode 100644 index 0000000..53504ac --- /dev/null +++ b/Documentation/Manpages/Locales/en_US/render.asciidoc.po @@ -0,0 +1,1423 @@ +msgid "" +msgstr "" +"Project-Id-Version: render.asciidoc 0.6\n" +"POT-Creation-Date: 2013-11-07 15:16-0500\n" +"PO-Revision-Date: 2013-11-07 15:16-0500\n" +"Last-Translator: Localization SIG \n" +"Language-Team: English\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +msgid "render" +msgstr "render" + +msgid "1" +msgstr "1" + +msgid "Standardize production tasks based on configuration files." +msgstr "Standardize production tasks based on configuration files." + +msgid "centos-art.sh render [OPTIONS] [DIRECTORY …]" +msgstr "centos-art.sh render [OPTIONS] [DIRECTORY …]" + +msgid "Description" +msgstr "Description" + +msgid "" +"When you execute the render " +"module, it looks for configuration files inside the “DIRECTORY” " +"specified in the command-line and processes them in the order they " +"were found. When no “DIRECTORY” is specified to centos-art.sh script, the render module looks for configuration files " +"inside the current directory it was executed from. If no " +"configuration file is found, the render module will end its execution with an error message." +msgstr "" +"When you execute the render " +"module, it looks for configuration files inside the “DIRECTORY” " +"specified in the command-line and processes them in the order they " +"were found. When no “DIRECTORY” is specified to centos-art.sh script, the render module looks for configuration files " +"inside the current directory it was executed from. If no " +"configuration file is found, the render module will end its execution with an error message." + +msgid "Options" +msgstr "Options" + +msgid "" +"The render module accepts the " +"following options:" +msgstr "" +"The render module accepts the " +"following options:" + +msgid "--help" +msgstr "--help" + +msgid "Print module's documentation." +msgstr "Print module's documentation." + +msgid "--version" +msgstr "--version" + +msgid "Print module's version." +msgstr "Print module's version." + +msgid "--filter=\"REGEX\"" +msgstr "--filter=\"REGEX\"" + +msgid "" +"This option reduces the number of section blocks inside " +"configuration files the render " +"module will take for processing. “REGEX” is a regular expression " +"pattern matching one or more section names inside the configuration " +"files found under “DIRECTORY”." +msgstr "" +"This option reduces the number of section blocks inside " +"configuration files the render " +"module will take for processing. “REGEX” is a regular expression " +"pattern matching one or more section names inside the configuration " +"files found under “DIRECTORY”." + +msgid "Configuration Files" +msgstr "Configuration Files" + +msgid "" +"The configuration files are regular files with the .conf extension. The name of configuration files is frequently " +"chosen for helping you to remember what the configuration files are " +"for and, in some cases, for producing section blocks in specific " +"order." +msgstr "" +"The configuration files are regular files with the .conf extension. The name of configuration files is frequently " +"chosen for helping you to remember what the configuration files are " +"for and, in some cases, for producing section blocks in specific " +"order." + +msgid "" +"The format used in configuration files use section blocks in the " +"form [section-name]. Each section block ends " +"when the next section block begins or at the end of the file. " +"Section blocks contain one or more variable definitions in the form " +"option = \"value\". In the specific case of " +"render module, the " +"section-name is an alphanumeric value and points " +"to the final file or directory you want to save the processing " +"results in. The configuration variables describe how to produce the " +"file or directory specified as section-name. " +"Name values in the section-name don't accept " +"variables or any kind of expansion in it, but configuration values " +"do. Commentaries are introduced by using the # " +"character at the beginning of lines. Commentaries defined this way " +"are excluded from processing so you can use them freely." +msgstr "" +"The format used in configuration files use section blocks in the " +"form [section-name]. Each section block ends " +"when the next section block begins or at the end of the file. " +"Section blocks contain one or more variable definitions in the form " +"option = \"value\". In the specific case of " +"render module, the " +"section-name is an alphanumeric value and points " +"to the final file or directory you want to save the processing " +"results in. The configuration variables describe how to produce the " +"file or directory specified as section-name. " +"Name values in the section-name don't accept " +"variables or any kind of expansion in it, but configuration values " +"do. Commentaries are introduced by using the # " +"character at the beginning of lines. Commentaries defined this way " +"are excluded from processing so you can use them freely." + +msgid "" +"The configuration files are processed from top to bottom. This is a " +"very important aspect to consider in situations where you need to " +"grantee specific priority for content production (e.g., you have " +"several files in a configuration file and need to produce some of " +"them before others). So, because configuration files are processed " +"from top to bottom, section blocks set first in the configuration " +"file are processed first and section blocks set later are processed " +"later." +msgstr "" +"The configuration files are processed from top to bottom. This is a " +"very important aspect to consider in situations where you need to " +"grantee specific priority for content production (e.g., you have " +"several files in a configuration file and need to produce some of " +"them before others). So, because configuration files are processed " +"from top to bottom, section blocks set first in the configuration " +"file are processed first and section blocks set later are processed " +"later." + +msgid "" +"The configuration files can be divided in separated configuration " +"files to produce specific section blocks with a given priority. For " +"example, if you have the file “render.conf”, you can divide its " +"content in “render-1.conf”, “render-2.conf” to produce section " +"blocks inside “render-1.conf” first and “render-2.conf” later. This " +"sort of division might be very useful when the configuration file " +"begins to grow, or you want to control the order in which specific " +"groups of files are produced inside “DIRECTORY”." +msgstr "" +"The configuration files can be divided in separated configuration " +"files to produce specific section blocks with a given priority. For " +"example, if you have the file “render.conf”, you can divide its " +"content in “render-1.conf”, “render-2.conf” to produce section " +"blocks inside “render-1.conf” first and “render-2.conf” later. This " +"sort of division might be very useful when the configuration file " +"begins to grow, or you want to control the order in which specific " +"groups of files are produced inside “DIRECTORY”." + +msgid "" +"Inside configuration files, configuration variables can take " +"different meanings based on the section contexts. The context of a " +"section block is defined by the render-" +"type variables." +msgstr "" +"Inside configuration files, configuration variables can take " +"different meanings based on the section contexts. The context of a " +"section block is defined by the render-" +"type variables." + +msgid "render-type" +msgstr "render-type" + +msgid "" +"Optional. This variable specifies the type of content rendition the " +"render module will perform. " +"This variable can take one of the following values: “archive”, " +"“asciidoc”, “compress”, “images”, “palette”, and “svg”. When this " +"variable is not set, the render module tries to determine the type of rendition based on " +"the file extension of the first file passed through render-from variable. If no valid value is " +"found there either, the render " +"module ends with an error message." +msgstr "" +"Optional. This variable specifies the type of content rendition the " +"render module will perform. " +"This variable can take one of the following values: “archive”, " +"“asciidoc”, “compress”, “images”, “palette”, and “svg”. When this " +"variable is not set, the render module tries to determine the type of rendition based on " +"the file extension of the first file passed through render-from variable. If no valid value is " +"found there either, the render " +"module ends with an error message." + +msgid "render-from" +msgstr "render-from" + +msgid "" +"Required. This variable specifies the file name of the source file " +"(design model) used to produce the final file specified in the " +"section line. This option can receive absolute paths and relative " +"paths. Absolute paths begin with a slash (“/”) character while " +"relative paths begin with the dot slash (“./”) characters or no " +"character at all. This variable can receive more than one value by " +"using either path expansion in one variable definition, or several " +"variables definitions." +msgstr "" +"Required. This variable specifies the file name of the source file " +"(design model) used to produce the final file specified in the " +"section line. This option can receive absolute paths and relative " +"paths. Absolute paths begin with a slash (“/”) character while " +"relative paths begin with the dot slash (“./”) characters or no " +"character at all. This variable can receive more than one value by " +"using either path expansion in one variable definition, or several " +"variables definitions." + +msgid "Using Paths" +msgstr "Using Paths" + +msgid "" +"When you provide absolute paths inside configuration files, there " +"isn't confusion about the location where the file is or should be. " +"However, it introduces rigidity to directory structures inside the " +"working copy when it is necessary to move directories from one " +"place to another inside the working copy. To eliminate this " +"mobility restrictions, relative paths can be used to create modular " +"directory structures." +msgstr "" +"When you provide absolute paths inside configuration files, there " +"isn't confusion about the location where the file is or should be. " +"However, it introduces rigidity to directory structures inside the " +"working copy when it is necessary to move directories from one " +"place to another inside the working copy. To eliminate this " +"mobility restrictions, relative paths can be used to create modular " +"directory structures." + +msgid "" +"When you use relative paths inside configuration files, paths are " +"relative to the location where the configuration file is stored in. " +"This way it is possible to move whole directory structures without " +"touching the configuration file and still have a render-able " +"structures inside the working copy. However, relative paths get " +"limited in situations where the production process needs files " +"outside the directory where the configuration file is stored in. In " +"such cases, a combination of relative and absolute paths is the " +"solution to apply." +msgstr "" +"When you use relative paths inside configuration files, paths are " +"relative to the location where the configuration file is stored in. " +"This way it is possible to move whole directory structures without " +"touching the configuration file and still have a render-able " +"structures inside the working copy. However, relative paths get " +"limited in situations where the production process needs files " +"outside the directory where the configuration file is stored in. In " +"such cases, a combination of relative and absolute paths is the " +"solution to apply." + +msgid "" +"When we need to use absolute paths to several files in the same " +"directory (e.g., we are combining them all to produce a new image) " +"but outside the current directory the configuration file is stored " +"in, it is possible to use a list of absolute paths one beside " +"another separated by space or we can use path expansion which is " +"shorter and easier to read. Path expansion is interpreted when you " +"enclose a list of file names in curly brackets using comma as " +"separator without spaces (e.g., /some/dir/{file1,file2," +"file3}). In order for path expansion to work correctly, " +"all the file names you put inside the curly brackets' list must " +"exist in the location specified first." +msgstr "" +"When we need to use absolute paths to several files in the same " +"directory (e.g., we are combining them all to produce a new image) " +"but outside the current directory the configuration file is stored " +"in, it is possible to use a list of absolute paths one beside " +"another separated by space or we can use path expansion which is " +"shorter and easier to read. Path expansion is interpreted when you " +"enclose a list of file names in curly brackets using comma as " +"separator without spaces (e.g., /some/dir/{file1,file2," +"file3}). In order for path expansion to work correctly, " +"all the file names you put inside the curly brackets' list must " +"exist in the location specified first." + +msgid "Using Environment Variables" +msgstr "Using Environment Variables" + +msgid "" +"The configuration files let you to use environment variables inside " +"them. This might result very useful when you need to provide " +"absolute paths based on variable information (e.g., the current " +"locale information). Some of the most important environment " +"variables used by centos-art.sh script -and its configuration files- are described below:" +msgstr "" +"The configuration files let you to use environment variables inside " +"them. This might result very useful when you need to provide " +"absolute paths based on variable information (e.g., the current " +"locale information). Some of the most important environment " +"variables used by centos-art.sh script -and its configuration files- are described below:" + +msgid "TCAR_BASEDIR" +msgstr "TCAR_BASEDIR" + +msgid "" +"This variable contains the absolute path to your repository's " +"working copy. The value of this variable is defined as read-only " +"inside centos-art.sh script " +"and cannot be modified later. As a matter of convenience, users " +"make use of their “~/.bash_profile” file to define this variable " +"there and, this way, skip the sometimes annoyance absolute path " +"questioning the centos-art.sh " +"script does in order to know the absolute path of the working copy " +"it is going to work with." +msgstr "" +"This variable contains the absolute path to your repository's " +"working copy. The value of this variable is defined as read-only " +"inside centos-art.sh script " +"and cannot be modified later. As a matter of convenience, users " +"make use of their “~/.bash_profile” file to define this variable " +"there and, this way, skip the sometimes annoyance absolute path " +"questioning the centos-art.sh " +"script does in order to know the absolute path of the working copy " +"it is going to work with." + +msgid "" +"Whenever you set absolute paths inside configuration files to refer " +"locations inside your working copy, it is necessary that you use " +"the TCAR_BASEDIR environment variable in front " +"of each path definition you set. TCAR_SCRIPT_LANG_LL:: This variable contains the language part of the current " +"locale information. For instance, if the current locale is “en_US." +"UTF-8”, the value of this variable would be “en”. " +"TCAR_SCRIPT_LANG_CC:: This variable contains the " +"country part of the current locale information. For instance, if " +"the current locale is “en_US.UTF-8”, the value of this variable " +"would be “US”. TCAR_SCRIPT_LANG_LC:: This " +"variable contains the current locale information in ll_CC format (e." +"g., es_ES). LANG:: This variable contains the " +"environment's current locale information." +msgstr "" +"Whenever you set absolute paths inside configuration files to refer " +"locations inside your working copy, it is necessary that you use " +"the TCAR_BASEDIR environment variable in front " +"of each path definition you set. TCAR_SCRIPT_LANG_LL:: This variable contains the language part of the current " +"locale information. For instance, if the current locale is “en_US." +"UTF-8”, the value of this variable would be “en”. " +"TCAR_SCRIPT_LANG_CC:: This variable contains the " +"country part of the current locale information. For instance, if " +"the current locale is “en_US.UTF-8”, the value of this variable " +"would be “US”. TCAR_SCRIPT_LANG_LC:: This " +"variable contains the current locale information in ll_CC format (e." +"g., es_ES). LANG:: This variable contains the " +"environment's current locale information." + +msgid "Rendering Archives" +msgstr "Rendering Archives" + +msgid "" +"When the render-type variable " +"is set to archive, the render module takes the list of files set through " +"render-from variable and " +"applies the value of command " +"to them all in order to produce the final file specified in the " +"section line. When the command variable is not specified, the " +"/bin/tar --remove-files -czf command is used as " +"default." +msgstr "" +"When the render-type variable " +"is set to archive, the render module takes the list of files set through " +"render-from variable and " +"applies the value of command " +"to them all in order to produce the final file specified in the " +"section line. When the command variable is not specified, the " +"/bin/tar --remove-files -czf command is used as " +"default." + +msgid "Rendering Image Files" +msgstr "Rendering Image Files" + +msgid "" +"When the render-type variable " +"is set to svg, the section block is interpreted " +"for rendering image files. When rendering image files, the " +"render-from variable must " +"point to a SVG files (either compressed or uncompressed). The " +"following following complementary variables are also accepted:" +msgstr "" +"When the render-type variable " +"is set to svg, the section block is interpreted " +"for rendering image files. When rendering image files, the " +"render-from variable must " +"point to a SVG files (either compressed or uncompressed). The " +"following following complementary variables are also accepted:" + +msgid "render-flow" +msgstr "render-flow" + +msgid "" +"Optional. This variable specifies the rendition flow to follow when " +"transforming SVG files into PNG images. This variable can take " +"either base or extended as " +"value. The base rendition flow takes one SVG " +"file and produces just one PNG image for it. The extended value applies the base rendition flow " +"and then transform the final PNG image to different heights, " +"formats, foreground colors and background colors. By default, when " +"this variable is not set, the base rendition " +"flow is used." +msgstr "" +"Optional. This variable specifies the rendition flow to follow when " +"transforming SVG files into PNG images. This variable can take " +"either base or extended as " +"value. The base rendition flow takes one SVG " +"file and produces just one PNG image for it. The extended value applies the base rendition flow " +"and then transform the final PNG image to different heights, " +"formats, foreground colors and background colors. By default, when " +"this variable is not set, the base rendition " +"flow is used." + +msgid "export-id" +msgstr "export-id" + +msgid "" +"Optional. This variable specifies the export id you want to use as " +"reference to produce PNG images from SVG files. The export-id is an " +"attribute you specified as unique value to an objects inside the " +"SVG file in order to export that object only but not the rest in " +"the SVG file. If this variable is not provided or it is empty, the " +"drawing area of the SVG file is used as reference to produce the " +"final PNG image." +msgstr "" +"Optional. This variable specifies the export id you want to use as " +"reference to produce PNG images from SVG files. The export-id is an " +"attribute you specified as unique value to an objects inside the " +"SVG file in order to export that object only but not the rest in " +"the SVG file. If this variable is not provided or it is empty, the " +"drawing area of the SVG file is used as reference to produce the " +"final PNG image." + +msgid "heights" +msgstr "heights" + +msgid "" +"Optional. This variable is available only for extended rendition flow and specifies the different image heights " +"you want to create copies of the final PNG image. The values " +"specified in this variable are separated by white space and should " +"be understandable by ImageMagick tool set. When this variable is " +"not provided, the render " +"module will create copies of final PNG image for several standard " +"heights." +msgstr "" +"Optional. This variable is available only for extended rendition flow and specifies the different image heights " +"you want to create copies of the final PNG image. The values " +"specified in this variable are separated by white space and should " +"be understandable by ImageMagick tool set. When this variable is " +"not provided, the render " +"module will create copies of final PNG image for several standard " +"heights." + +msgid "formats" +msgstr "formats" + +msgid "" +"Optional. This variable is available only for extended rendition flow and specifies the different image formats " +"you want to create copies of the final PNG image. The values " +"specified in this variable are separated by white space and should " +"be supported by ImageMagick tool set. When this variable is not " +"provided or set in the configuration file, the render module will create copies of final PNG " +"image for several standard formats." +msgstr "" +"Optional. This variable is available only for extended rendition flow and specifies the different image formats " +"you want to create copies of the final PNG image. The values " +"specified in this variable are separated by white space and should " +"be supported by ImageMagick tool set. When this variable is not " +"provided or set in the configuration file, the render module will create copies of final PNG " +"image for several standard formats." + +msgid "" +"To see the list of possible image formats supported by ImageMagick " +"tool set, run the following command: identify -list format." +msgstr "" +"To see the list of possible image formats supported by ImageMagick " +"tool set, run the following command: identify -list format." + +msgid "fgcolors" +msgstr "fgcolors" + +msgid "" +"Optional. This variable is available only for extended rendition flow and specifies the different foreground " +"colors you want to create copies of the final PNG image. To do " +"this, the image you want to copy should be rendered with black " +"color (000000) so the color replacement can be performed. The " +"values specified in this variable are separated by white space and " +"should be understandable by ImageMagick tool set. When this " +"variable is not provided the black foreground (000000) is used." +msgstr "" +"Optional. This variable is available only for extended rendition flow and specifies the different foreground " +"colors you want to create copies of the final PNG image. To do " +"this, the image you want to copy should be rendered with black " +"color (000000) so the color replacement can be performed. The " +"values specified in this variable are separated by white space and " +"should be understandable by ImageMagick tool set. When this " +"variable is not provided the black foreground (000000) is used." + +msgid "bgcolors" +msgstr "bgcolors" + +msgid "" +"Optional. This variable is available only for extended rendition flow and specifies the different background " +"colors you want to create copies of the final PNG image. This " +"variable uses Inkscape's --export-background " +"and --export-background-opacity options to " +"control the background information of final PNG images. Possible " +"values to this variable take the form XXXXXX-X, " +"where the first six X represent a color in " +"hexadecimal format and the final X might be 1 or " +"0. 1 for full opacity and 0 for full transparency. Intermediate " +"values between 0 and 1 (e.g., 0.55) can be given to control the " +"background opacity. When this variable is not provided, white " +"background full transparency (ffffff-0) is used " +"as default value." +msgstr "" +"Optional. This variable is available only for extended rendition flow and specifies the different background " +"colors you want to create copies of the final PNG image. This " +"variable uses Inkscape's --export-background " +"and --export-background-opacity options to " +"control the background information of final PNG images. Possible " +"values to this variable take the form XXXXXX-X, " +"where the first six X represent a color in " +"hexadecimal format and the final X might be 1 or " +"0. 1 for full opacity and 0 for full transparency. Intermediate " +"values between 0 and 1 (e.g., 0.55) can be given to control the " +"background opacity. When this variable is not provided, white " +"background full transparency (ffffff-0) is used " +"as default value." + +msgid "command" +msgstr "command" + +msgid "" +"Optional. This variable specifies the command used to modify the " +"production of final images. During the rendition process, images " +"are produced inside a temporal directory, and later moved to its " +"final location using the command specified as value in this " +"variable. When this variable is not specified, it can take one of " +"two values based on the amount of files passed through render-from variable. When just one file " +"is passed through the render-from variable, the default value for this variable is " +"/bin/cp, but when there are reference to more " +"than one file, the value of this option is /usr/bin/" +"convert +append which combines all images into the final " +"images." +msgstr "" +"Optional. This variable specifies the command used to modify the " +"production of final images. During the rendition process, images " +"are produced inside a temporal directory, and later moved to its " +"final location using the command specified as value in this " +"variable. When this variable is not specified, it can take one of " +"two values based on the amount of files passed through render-from variable. When just one file " +"is passed through the render-from variable, the default value for this variable is " +"/bin/cp, but when there are reference to more " +"than one file, the value of this option is /usr/bin/" +"convert +append which combines all images into the final " +"images." + +msgid "comment" +msgstr "comment" + +msgid "" +"Optional. This variable contains a sentence describing the image " +"you are creating. This information is written in the " +"comment field of PNG images. When this variable " +"is empty, no comment information will be written to the final PNG " +"image files." +msgstr "" +"Optional. This variable contains a sentence describing the image " +"you are creating. This information is written in the " +"comment field of PNG images. When this variable " +"is empty, no comment information will be written to the final PNG " +"image files." + +msgid "brand" +msgstr "brand" + +msgid "" +"Optional. This variable describes the branding information applied " +"to final images. The value of this variable has the form " +"FILENAME:GEOMETRY, where FILENAME is the absolute path to the PNG image you want to apply as " +"brand and, GEOMETRY takes the form " +"xHEIGHT+X+Y. In order to apply brand information " +"to final images correctly, the brand images files you want to apply " +"must be available. In case they don't exist the render module ends its execution with an " +"error message." +msgstr "" +"Optional. This variable describes the branding information applied " +"to final images. The value of this variable has the form " +"FILENAME:GEOMETRY, where FILENAME is the absolute path to the PNG image you want to apply as " +"brand and, GEOMETRY takes the form " +"xHEIGHT+X+Y. In order to apply brand information " +"to final images correctly, the brand images files you want to apply " +"must be available. In case they don't exist the render module ends its execution with an " +"error message." + +msgid "Rendering Image Files From Other Image Files" +msgstr "Rendering Image Files From Other Image Files" + +msgid "" +"To render image files from other image files, the render-type variable must be set to “images” " +"and one or more image files must be provided in the render-from variable. When the render module finds a section block with this " +"characteristics, it applies the value of command variable to all files found in render-from variable to produce the final " +"file specified in the section name." +msgstr "" +"To render image files from other image files, the render-type variable must be set to “images” " +"and one or more image files must be provided in the render-from variable. When the render module finds a section block with this " +"characteristics, it applies the value of command variable to all files found in render-from variable to produce the final " +"file specified in the section name." + +msgid "" +"When the command variable is " +"not specified, the “/usr/bin/convert -append” command is used as " +"default. This command takes all the images passed through render-from and appends them from top to " +"bottom and saves the result in the file you specified in the " +"section name. When you render files this way, the order in which " +"you define source files through render-" +"from may affect the final result based in the command you provided." +msgstr "" +"When the command variable is " +"not specified, the “/usr/bin/convert -append” command is used as " +"default. This command takes all the images passed through render-from and appends them from top to " +"bottom and saves the result in the file you specified in the " +"section name. When you render files this way, the order in which " +"you define source files through render-" +"from may affect the final result based in the command you provided." + +msgid "" +"The “images” rendition type provides an interface for external " +"image manipulation programs, like ImageMagick and NetPbm. You can " +"use these programs to manipulate images in great detail through the " +"command-line." +msgstr "" +"The “images” rendition type provides an interface for external " +"image manipulation programs, like ImageMagick and NetPbm. You can " +"use these programs to manipulate images in great detail through the " +"command-line." + +msgid "Rendering Images With Reduced Number Of Colors" +msgstr "Rendering Images With Reduced Number Of Colors" + +msgid "" +"When the render-type variable " +"is set to palette, the section block where this " +"variable was defined is interpreted for producing images with a " +"reduced number of colors. In these cases, the render-from variable must point to an image " +"file. The following complementary variables are also accepted:" +msgstr "" +"When the render-type variable " +"is set to palette, the section block where this " +"variable was defined is interpreted for producing images with a " +"reduced number of colors. In these cases, the render-from variable must point to an image " +"file. The following complementary variables are also accepted:" + +msgid "palette-gpl" +msgstr "palette-gpl" + +msgid "" +"Required. This variable addresses the palette of colors that will " +"be use for reducing colors. Generally, the palette of color file " +"ends with the .gpl extension and is stored in " +"the same directory of the configuration file. This file can be " +"produced by GIMP and provides an optimized set of colors for the " +"specific image you provided in the render-" +"from variable." +msgstr "" +"Required. This variable addresses the palette of colors that will " +"be use for reducing colors. Generally, the palette of color file " +"ends with the .gpl extension and is stored in " +"the same directory of the configuration file. This file can be " +"produced by GIMP and provides an optimized set of colors for the " +"specific image you provided in the render-" +"from variable." + +msgid "" +"To find the optimized set of colors, you need to open the image " +"specified in render-from in " +"GIMP, reduce its colors to the desired number using GIMP's Indexed " +"feature and, then, create a new palette by importing it from the " +"indexed image file. Once you have the palette this way, you need to " +"edit it using the Palettes dialog to add the hexadecimal value of " +"each color in the palette to the comment field, so you have a " +"palette file similar to the following:" +msgstr "" +"To find the optimized set of colors, you need to open the image " +"specified in render-from in " +"GIMP, reduce its colors to the desired number using GIMP's Indexed " +"feature and, then, create a new palette by importing it from the " +"indexed image file. Once you have the palette this way, you need to " +"edit it using the Palettes dialog to add the hexadecimal value of " +"each color in the palette to the comment field, so you have a " +"palette file similar to the following:" + +#, no-wrap +msgid "" +"GIMP Palette\n" +"Name: Syslinux-Default\n" +"Columns: 16\n" +"#\n" +" 32 76 141 204c8d\n" +" 37 82 146 255292\n" +" 52 94 153 345e99\n" +" 73 110 162 496ea2\n" +" 91 124 172 5b7cac\n" +"108 136 180 6c88b4\n" +"120 146 186 7892ba\n" +"131 158 193 839ec1\n" +"255 255 255 ffffff\n" +"146 170 200 92aac8\n" +"162 182 209 a2b6d1\n" +"183 199 219 b7c7db\n" +"204 216 230 ccd8e6\n" +"221 229 238 dde5ee\n" +"235 241 245 ebf1f5\n" +"246 251 254 f6fbfe" +msgstr "" +"GIMP Palette\n" +"Name: Syslinux-Default\n" +"Columns: 16\n" +"#\n" +" 32 76 141 204c8d\n" +" 37 82 146 255292\n" +" 52 94 153 345e99\n" +" 73 110 162 496ea2\n" +" 91 124 172 5b7cac\n" +"108 136 180 6c88b4\n" +"120 146 186 7892ba\n" +"131 158 193 839ec1\n" +"255 255 255 ffffff\n" +"146 170 200 92aac8\n" +"162 182 209 a2b6d1\n" +"183 199 219 b7c7db\n" +"204 216 230 ccd8e6\n" +"221 229 238 dde5ee\n" +"235 241 245 ebf1f5\n" +"246 251 254 f6fbfe" + +msgid "" +"Now that the palette has been created, you can set a path to " +"palette-gpl variable. Even you " +"can set path of palette-gpl " +"from GIMP's palettes directory (~/.gimp-x.x/palettes/), it is much more preferable that you copy the palette " +"file from that location to the configuration file's DIRECTORY " +"inside the repository and put it under version control, so others " +"can take benefit of it. The palette file is an integral part of " +"color specific image reduction so it must be near the configuration " +"file you use for such actions." +msgstr "" +"Now that the palette has been created, you can set a path to " +"palette-gpl variable. Even you " +"can set path of palette-gpl " +"from GIMP's palettes directory (~/.gimp-x.x/palettes/), it is much more preferable that you copy the palette " +"file from that location to the configuration file's DIRECTORY " +"inside the repository and put it under version control, so others " +"can take benefit of it. The palette file is an integral part of " +"color specific image reduction so it must be near the configuration " +"file you use for such actions." + +msgid "Rendering Documentation Files" +msgstr "Rendering Documentation Files" + +msgid "" +"To render documentation files, the render-" +"type variable must be set to “asciidoc” and the " +"render-from variable must " +"point to an Asciidoc file. When the render module finds this information in a section " +"block, it takes the asciidoc file as source and transforms it into " +"a docbook file using the asciidoc program. The docbook file is created temporarily for " +"further format transformations and removed later, once the final " +"format has been rendered." +msgstr "" +"To render documentation files, the render-" +"type variable must be set to “asciidoc” and the " +"render-from variable must " +"point to an Asciidoc file. When the render module finds this information in a section " +"block, it takes the asciidoc file as source and transforms it into " +"a docbook file using the asciidoc program. The docbook file is created temporarily for " +"further format transformations and removed later, once the final " +"format has been rendered." + +msgid "" +"When the render module creates " +"the intermediate docbook file, it considers the current locale " +"information of your environment (e.g., by reading the LANG " +"environment variable). In case the current locale information is " +"different to English (e.g., the value of LANG environment variable " +"doesn't begin with the “en” characters), the docbook file will be " +"localized based on the translation file specified in the locale-from variable, before applying " +"further format transformations to it. This way, further format " +"transformations from the temporarily docbook file will end up being " +"localized as well. If the locale-from variable is not present in the section block, the " +"intermediate docbook file won't be localized which make the final " +"result to be not localized either." +msgstr "" +"When the render module creates " +"the intermediate docbook file, it considers the current locale " +"information of your environment (e.g., by reading the LANG " +"environment variable). In case the current locale information is " +"different to English (e.g., the value of LANG environment variable " +"doesn't begin with the “en” characters), the docbook file will be " +"localized based on the translation file specified in the locale-from variable, before applying " +"further format transformations to it. This way, further format " +"transformations from the temporarily docbook file will end up being " +"localized as well. If the locale-from variable is not present in the section block, the " +"intermediate docbook file won't be localized which make the final " +"result to be not localized either." + +msgid "" +"When you set the render-type " +"variable to “asciidoc”, the section blocks need to have the " +"render-flow variable set to " +"“article”, “book” or “manpage”. This information defines the way " +"the intermediate docbook file is produced from the asciidoc file " +"and, by extension, the possible final results, too." +msgstr "" +"When you set the render-type " +"variable to “asciidoc”, the section blocks need to have the " +"render-flow variable set to " +"“article”, “book” or “manpage”. This information defines the way " +"the intermediate docbook file is produced from the asciidoc file " +"and, by extension, the possible final results, too." + +msgid "" +"When render-flow variable is " +"set to “article” or “book”, it is possible to produce final files " +"in “xhtml” format but not in “manpage” format. This is because man " +"pages require a specific document structure that both articles and " +"books don't need to have. When producing articles and books in " +"XHTML format, you can use the render-" +"page variable to control whether to produce the entire " +"book or article in just one file (“single”) or in separate files " +"linked one another (“chunks”)." +msgstr "" +"When render-flow variable is " +"set to “article” or “book”, it is possible to produce final files " +"in “xhtml” format but not in “manpage” format. This is because man " +"pages require a specific document structure that both articles and " +"books don't need to have. When producing articles and books in " +"XHTML format, you can use the render-" +"page variable to control whether to produce the entire " +"book or article in just one file (“single”) or in separate files " +"linked one another (“chunks”)." + +msgid "" +"When render-flow variable is " +"set to “manpage” it is possible to set the formats variable to either “manpage” or “xhtml” in " +"order to render the docbook file as man page or XHTML format, " +"respectively. you are producing man pages to a language different " +"to English, these required in order for man command to find the man pages in different " +"locales. The value of the man's volume section can be set using the " +"mansect variable. If this " +"variable is not set, the value of man's volume section will be 1." +msgstr "" +"When render-flow variable is " +"set to “manpage” it is possible to set the formats variable to either “manpage” or “xhtml” in " +"order to render the docbook file as man page or XHTML format, " +"respectively. you are producing man pages to a language different " +"to English, these required in order for man command to find the man pages in different " +"locales. The value of the man's volume section can be set using the " +"mansect variable. If this " +"variable is not set, the value of man's volume section will be 1." + +msgid "" +"When render-flow variable is " +"not set, the “article” value is used as default value." +msgstr "" +"When render-flow variable is " +"not set, the “article” value is used as default value." + +msgid "" +"When the formats variable has " +"the “xhtml” value, you need to set the images-from and styles-" +"from variables inside the related section block, no " +"matter what the value of render-flow would be. The value of images-" +"from and styles-from variables must point to a directory, inside the working " +"copy, containing the share images and CSS files used by XHTML " +"documents, respectively. If none of these two variables are set the " +"directories them." +msgstr "" +"When the formats variable has " +"the “xhtml” value, you need to set the images-from and styles-" +"from variables inside the related section block, no " +"matter what the value of render-flow would be. The value of images-" +"from and styles-from variables must point to a directory, inside the working " +"copy, containing the share images and CSS files used by XHTML " +"documents, respectively. If none of these two variables are set the " +"directories them." + +msgid "" +"When the formats variable is " +"not set, the “xhtml” value is used as default value." +msgstr "" +"When the formats variable is " +"not set, the “xhtml” value is used as default value." + +msgid "Rendering Localized Images" +msgstr "Rendering Localized Images" + +msgid "" +"To produce localized content, you need to set the locale-from variable in the section block you " +"want to provide translations and point its value to the translation " +"file where string translations will take place. Then, you need to " +"check the value of LANG environment variable to be sure it has the " +"locale information you want to translate messages for." +msgstr "" +"To produce localized content, you need to set the locale-from variable in the section block you " +"want to provide translations and point its value to the translation " +"file where string translations will take place. Then, you need to " +"check the value of LANG environment variable to be sure it has the " +"locale information you want to translate messages for." + +msgid "" +"If the LANG environment variable has the value you expect, run the " +"locale module on the " +"“DIRECTORY” you want to locale content. This read the source files " +"you specified in render-from " +"variable and would create the translation files (a.k.a., portable " +"objects) you need to edit to provide the string translations from " +"one language to another. Verify the translation file exist and edit " +"it to provide the strings translations. Once the strings have been " +"translated, execute the render " +"module on the “DIRECTORY”." +msgstr "" +"If the LANG environment variable has the value you expect, run the " +"locale module on the " +"“DIRECTORY” you want to locale content. This read the source files " +"you specified in render-from " +"variable and would create the translation files (a.k.a., portable " +"objects) you need to edit to provide the string translations from " +"one language to another. Verify the translation file exist and edit " +"it to provide the strings translations. Once the strings have been " +"translated, execute the render " +"module on the “DIRECTORY”." + +msgid "" +"When the render module finds " +"the locale-from variable in a " +"section block, it uses the xml2po program to create a localized instance of each source " +"file it finds in render-from " +"variable. Then, using the source files' localized instances, it " +"produces the final files based on render-" +"type variable's value." +msgstr "" +"When the render module finds " +"the locale-from variable in a " +"section block, it uses the xml2po program to create a localized instance of each source " +"file it finds in render-from " +"variable. Then, using the source files' localized instances, it " +"produces the final files based on render-" +"type variable's value." + +msgid "Examples" +msgstr "Examples" + +msgid "" +"Here are some practical configuration examples you can use as " +"reference to create your own configuration files." +msgstr "" +"Here are some practical configuration examples you can use as " +"reference to create your own configuration files." + +#, no-wrap +msgid "" +"[Xhtml-single]\n" +"render-type = \"asciidoc\"\n" +"render-flow = \"article\"\n" +"render-from = \"corporate.asciidoc\"\n" +"locale-from = \"${TCAR_SCRIPT_LANG_LC}/messages.po\"\n" +"images-from = \"${TCAR_BASEDIR}/Artworks/Icons/Webenv\"\n" +"styles-from = \"${TCAR_BASEDIR}/Artworks/Webenv/Docbook/1.69.1/Css\"\n" +"formats = \"xhtml\"\n" +"render-page = \"single\"" +msgstr "" +"[Xhtml-single]\n" +"render-type = \"asciidoc\"\n" +"render-flow = \"article\"\n" +"render-from = \"corporate.asciidoc\"\n" +"locale-from = \"${TCAR_SCRIPT_LANG_LC}/messages.po\"\n" +"images-from = \"${TCAR_BASEDIR}/Artworks/Icons/Webenv\"\n" +"styles-from = \"${TCAR_BASEDIR}/Artworks/Webenv/Docbook/1.69.1/Css\"\n" +"formats = \"xhtml\"\n" +"render-page = \"single\"" + +msgid "" +"When the render module reads " +"this configuration file, it initiates the asscidoc module which in turn initiates the xhtml module for transforming the corporate.asciidoc file into corporate.docbook file using " +"article as document type and result, the " +"render module produces the " +"directory of the configuration file as base directory." +msgstr "" +"When the render module reads " +"this configuration file, it initiates the asscidoc module which in turn initiates the xhtml module for transforming the corporate.asciidoc file into corporate.docbook file using " +"article as document type and result, the " +"render module produces the " +"directory of the configuration file as base directory." + +#, no-wrap +msgid "" +"[centos-artwork.png]\n" +"render-from = \"${TCAR_BASEDIR}/Artworks/Brands/Types/Webenv/centos.org/{centos,artwork}.svgz\"\n" +"formats = \"xpm pdf jpg tif\"\n" +"heights = \"16 20 22 24 32 36 38 40 48 64 72 78 96 112 124 128 148 164 196 200 512\"\n" +"fgcolors = \"000000 ffffff\"\n" +"bgcolors = \"ffffff-0\"\n" +"command = \"/usr/bin/convert +append\"" +msgstr "" +"[centos-artwork.png]\n" +"render-from = \"${TCAR_BASEDIR}/Artworks/Brands/Types/Webenv/centos.org/{centos,artwork}.svgz\"\n" +"formats = \"xpm pdf jpg tif\"\n" +"heights = \"16 20 22 24 32 36 38 40 48 64 72 78 96 112 124 128 148 164 196 200 512\"\n" +"fgcolors = \"000000 ffffff\"\n" +"bgcolors = \"ffffff-0\"\n" +"command = \"/usr/bin/convert +append\"" + +msgid "" +"When the render module reads " +"this configuration file, it takes the centos.svgz and artwork.svgz files as source to " +"produce the centos.png and artwork.png files considering the first value in the list of heights, " +"background, foreground colors specified in the configuration file. " +"Then, it combines the results horizontally to create the " +"centos-artwork.png file. Later, the " +"centos-artwork.png file is converted to produce " +"one image file for each image format specified in the configuration " +"file. At this point, all the process repeats again but for the next " +"height and color values in the list." +msgstr "" +"When the render module reads " +"this configuration file, it takes the centos.svgz and artwork.svgz files as source to " +"produce the centos.png and artwork.png files considering the first value in the list of heights, " +"background, foreground colors specified in the configuration file. " +"Then, it combines the results horizontally to create the " +"centos-artwork.png file. Later, the " +"centos-artwork.png file is converted to produce " +"one image file for each image format specified in the configuration " +"file. At this point, all the process repeats again but for the next " +"height and color values in the list." + +#, no-wrap +msgid "" +"[syslinux-splash.png]\n" +"render-from = \"${TCAR_BASEDIR}/Artworks/Themes/Models/Distro/5/Syslinux/syslinux-splash.svgz\"\n" +"brand = \"${TCAR_BASEDIR}/Artworks/Brands/Types/Default/Images/ffffff/ffffff-0/48/centos.png:x48+20+232\"\n" +"brand = \"${TCAR_BASEDIR}/Artworks/Brands/Types/Numbers/Images/ffffff/ffffff-0/96/5.png:x96+300+184\"\n" +"\n" +"[syslinux-splash.lss]\n" +"render-from = \"syslinux-splash.png\"\n" +"render-type = \"palette\"\n" +"palette-gpl = \"colors.gpl\"" +msgstr "" +"[syslinux-splash.png]\n" +"render-from = \"${TCAR_BASEDIR}/Artworks/Themes/Models/Distro/5/Syslinux/syslinux-splash.svgz\"\n" +"brand = \"${TCAR_BASEDIR}/Artworks/Brands/Types/Default/Images/ffffff/ffffff-0/48/centos.png:x48+20+232\"\n" +"brand = \"${TCAR_BASEDIR}/Artworks/Brands/Types/Numbers/Images/ffffff/ffffff-0/96/5.png:x96+300+184\"\n" +"\n" +"[syslinux-splash.lss]\n" +"render-from = \"syslinux-splash.png\"\n" +"render-type = \"palette\"\n" +"palette-gpl = \"colors.gpl\"" + +msgid "" +"When the render module reads " +"this configuration file," +msgstr "" +"When the render module reads " +"this configuration file," + +#, no-wrap +msgid "" +"[screenshot.png]\n" +"render-type = \"svg\"\n" +"render-from = \"${TCAR_BASEDIR}/Artworks/Themes/Models/Distro/5/Gdm/screenshot.svgz\"\n" +"render-flow = \"base\"\n" +"brand = \"${TCAR_BASEDIR}/Artworks/Brands/Symbols/Default/Images/ffffff/ffffff-0/16/centos.png:x16+5+5\"\n" +"\n" +"[800x600.tar.gz]\n" +"render-type = \"archive\"\n" +"render-from = \"${TCAR_BASEDIR}/Artworks/Themes/Motifs/${MOTIF}/Backgrounds/Images/800x600-final.png:background.png\"\n" +"render-from = \"${TCAR_BASEDIR}/Artworks/Themes/Models/Distro/5/Gdm/GdmGreeterTheme.desktop\"\n" +"render-from = \"${TCAR_BASEDIR}/Artworks/Themes/Models/Distro/5/Gdm/GdmGreeterTheme.xml\"\n" +"render-from = \"${TCAR_BASEDIR}/Artworks/Themes/Models/Distro/5/Gdm/icon-language.png\"\n" +"render-from = \"${TCAR_BASEDIR}/Artworks/Themes/Models/Distro/5/Gdm/icon-reboot.png\"\n" +"render-from = \"${TCAR_BASEDIR}/Artworks/Themes/Models/Distro/5/Gdm/icon-session.png\"\n" +"render-from = \"${TCAR_BASEDIR}/Artworks/Themes/Models/Distro/5/Gdm/icon-shutdown.png\"\n" +"render-from = \"screenshot.png\"\n" +"command = \"/bin/tar -czf\"\n" +"\n" +"[1360x768.tar.gz]\n" +"render-type = \"archive\"\n" +"render-from = \"${TCAR_BASEDIR}/Artworks/Themes/Motifs/${MOTIF}/Backgrounds/Images/1360x768-final.png:background.png\"\n" +"render-from = \"${TCAR_BASEDIR}/Artworks/Themes/Models/Distro/5/Gdm/GdmGreeterTheme.desktop\"\n" +"render-from = \"${TCAR_BASEDIR}/Artworks/Themes/Models/Distro/5/Gdm/GdmGreeterTheme.xml\"\n" +"render-from = \"${TCAR_BASEDIR}/Artworks/Themes/Models/Distro/5/Gdm/icon-language.png\"\n" +"render-from = \"${TCAR_BASEDIR}/Artworks/Themes/Models/Distro/5/Gdm/icon-reboot.png\"\n" +"render-from = \"${TCAR_BASEDIR}/Artworks/Themes/Models/Distro/5/Gdm/icon-session.png\"\n" +"render-from = \"${TCAR_BASEDIR}/Artworks/Themes/Models/Distro/5/Gdm/icon-shutdown.png\"\n" +"render-from = \"screenshot.png\"\n" +"command = \"/bin/tar --remove-files -czf\"" +msgstr "" +"[screenshot.png]\n" +"render-type = \"svg\"\n" +"render-from = \"${TCAR_BASEDIR}/Artworks/Themes/Models/Distro/5/Gdm/screenshot.svgz\"\n" +"render-flow = \"base\"\n" +"brand = \"${TCAR_BASEDIR}/Artworks/Brands/Symbols/Default/Images/ffffff/ffffff-0/16/centos.png:x16+5+5\"\n" +"\n" +"[800x600.tar.gz]\n" +"render-type = \"archive\"\n" +"render-from = \"${TCAR_BASEDIR}/Artworks/Themes/Motifs/${MOTIF}/Backgrounds/Images/800x600-final.png:background.png\"\n" +"render-from = \"${TCAR_BASEDIR}/Artworks/Themes/Models/Distro/5/Gdm/GdmGreeterTheme.desktop\"\n" +"render-from = \"${TCAR_BASEDIR}/Artworks/Themes/Models/Distro/5/Gdm/GdmGreeterTheme.xml\"\n" +"render-from = \"${TCAR_BASEDIR}/Artworks/Themes/Models/Distro/5/Gdm/icon-language.png\"\n" +"render-from = \"${TCAR_BASEDIR}/Artworks/Themes/Models/Distro/5/Gdm/icon-reboot.png\"\n" +"render-from = \"${TCAR_BASEDIR}/Artworks/Themes/Models/Distro/5/Gdm/icon-session.png\"\n" +"render-from = \"${TCAR_BASEDIR}/Artworks/Themes/Models/Distro/5/Gdm/icon-shutdown.png\"\n" +"render-from = \"screenshot.png\"\n" +"command = \"/bin/tar -czf\"\n" +"\n" +"[1360x768.tar.gz]\n" +"render-type = \"archive\"\n" +"render-from = \"${TCAR_BASEDIR}/Artworks/Themes/Motifs/${MOTIF}/Backgrounds/Images/1360x768-final.png:background.png\"\n" +"render-from = \"${TCAR_BASEDIR}/Artworks/Themes/Models/Distro/5/Gdm/GdmGreeterTheme.desktop\"\n" +"render-from = \"${TCAR_BASEDIR}/Artworks/Themes/Models/Distro/5/Gdm/GdmGreeterTheme.xml\"\n" +"render-from = \"${TCAR_BASEDIR}/Artworks/Themes/Models/Distro/5/Gdm/icon-language.png\"\n" +"render-from = \"${TCAR_BASEDIR}/Artworks/Themes/Models/Distro/5/Gdm/icon-reboot.png\"\n" +"render-from = \"${TCAR_BASEDIR}/Artworks/Themes/Models/Distro/5/Gdm/icon-session.png\"\n" +"render-from = \"${TCAR_BASEDIR}/Artworks/Themes/Models/Distro/5/Gdm/icon-shutdown.png\"\n" +"render-from = \"screenshot.png\"\n" +"command = \"/bin/tar --remove-files -czf\"" + +msgid "Bugs" +msgstr "Bugs" + +msgid "" +"The render module has some " +"issues I would like you to be aware of. Mainly, to see if you could " +"help me find better solutions for them ;)" +msgstr "" +"The render module has some " +"issues I would like you to be aware of. Mainly, to see if you could " +"help me find better solutions for them ;)" + +msgid "" +"The process implemented to reduce image colors through GIMP's " +"palettes involves too much user intervention compared with " +"ImageMagick's --colors option that reduces image colors instantly " +"without user intervention. Nevertheless, the procedure of reducing " +"color through GIMP's palettes provides more quality to final images " +"than ImageMagic's --colors option does. Also, using GIMP's palettes " +"let us create LSS images from PNG images using the same exact " +"information we used to reduce colors on PNG images. This is very " +"important in order to have the same result in both image types. " +"Because of these reasons I prefer GIMP's palettes procedure against " +"others methods like it is the case of ImageMagick's for producing " +"images with reduced number of colors." +msgstr "" +"The process implemented to reduce image colors through GIMP's " +"palettes involves too much user intervention compared with " +"ImageMagick's --colors option that reduces image colors instantly " +"without user intervention. Nevertheless, the procedure of reducing " +"color through GIMP's palettes provides more quality to final images " +"than ImageMagic's --colors option does. Also, using GIMP's palettes " +"let us create LSS images from PNG images using the same exact " +"information we used to reduce colors on PNG images. This is very " +"important in order to have the same result in both image types. " +"Because of these reasons I prefer GIMP's palettes procedure against " +"others methods like it is the case of ImageMagick's for producing " +"images with reduced number of colors." + +msgid "Rendering PDF Files From Localized Docbook Files" +msgstr "Rendering PDF Files From Localized Docbook Files" + +msgid "" +"Even it is possible to produce PDF files from Docbook files using " +"current applications inside CentOS-5, there are some production " +"issues when we use localized docbook files as source to produce " +"localized PDF files that made me not to implement them as part of " +"centos-art.sh script by now." +msgstr "" +"Even it is possible to produce PDF files from Docbook files using " +"current applications inside CentOS-5, there are some production " +"issues when we use localized docbook files as source to produce " +"localized PDF files that made me not to implement them as part of " +"centos-art.sh script by now." + +msgid "" +"When using the XML(DocBook)->XML(FO)->PDF transformation " +"chain, the result produced by docbook-style-xsl-1.69.1-" +"5.1 and passivetex-1.25-5.1.1 " +"doesn't render heading boxes very well on page's top and page's " +"bottom. The text put inside these boxes seem to have not enough " +"space in their respective areas." +msgstr "" +"When using the XML(DocBook)->XML(FO)->PDF transformation " +"chain, the result produced by docbook-style-xsl-1.69.1-" +"5.1 and passivetex-1.25-5.1.1 " +"doesn't render heading boxes very well on page's top and page's " +"bottom. The text put inside these boxes seem to have not enough " +"space in their respective areas." + +msgid "" +"Tried using dblatex-0.2.8-2.el5 but didn't " +"work for localized docbook files (i.e., those who has the " +"lang=\"lang\" string in their root element). If " +"you just remove the language specification string it just work. We " +"need the language specification in order for internal document " +"strings like Abstract and Table of " +"contents to be automatically translated. When the " +"language specific attribute is present in the root element, dblatex " +"outputs the following:" +msgstr "" +"Tried using dblatex-0.2.8-2.el5 but didn't " +"work for localized docbook files (i.e., those who has the " +"lang=\"lang\" string in their root element). If " +"you just remove the language specification string it just work. We " +"need the language specification in order for internal document " +"strings like Abstract and Table of " +"contents to be automatically translated. When the " +"language specific attribute is present in the root element, dblatex " +"outputs the following:" + +#, no-wrap +msgid "" +"Build the listings...\n" +"XSLT stylesheets DocBook - LaTeX 2e (0.2.8)\n" +"===================================================\n" +"Processing Revision History\n" +"Build 2912-corporate.docbook.pdf\n" +"This is pdfeTeX, Version 3.141592-1.21a-2.2 (Web2C 7.5.4)\n" +"entering extended mode\n" +"pdflatex failed\n" +"/usr/share/texmf/tex/latex/dblatex/docbook.sty:160: No counter 'chapter' defined.\n" +"/usr/share/texmf/tex/latex/dblatex/docbook.sty:160: leading text: \\newfloat{example}{htb}{loe}[chapter]\n" +"/usr/share/texmf/tex/latex/dblatex/docbook.sty:164: No counter 'chapter' defined.\n" +"/usr/share/texmf/tex/latex/dblatex/docbook.sty:164: leading text: \\newfloat{dbequation}{htb}{loe}[chapter]\n" +"2912-corporate.docbook_tmp.tex:62: Illegal parameter number in definition of \\@the@H@page.\n" +"2912-corporate.docbook_tmp.tex:62: leading text: \\maketitle\n" +"2912-corporate.docbook_tmp.tex:62: Illegal parameter number in definition of \\@the@H@page.\n" +"2912-corporate.docbook_tmp.tex:62: leading text: \\maketitle\n" +"2912-corporate.docbook_tmp.tex:62: Illegal parameter number in definition of \\@the@H@page.\n" +"2912-corporate.docbook_tmp.tex:62: leading text: \\maketitle\n" +"Error: pdflatex compilation failed" +msgstr "" +"Build the listings...\n" +"XSLT stylesheets DocBook - LaTeX 2e (0.2.8)\n" +"===================================================\n" +"Processing Revision History\n" +"Build 2912-corporate.docbook.pdf\n" +"This is pdfeTeX, Version 3.141592-1.21a-2.2 (Web2C 7.5.4)\n" +"entering extended mode\n" +"pdflatex failed\n" +"/usr/share/texmf/tex/latex/dblatex/docbook.sty:160: No counter 'chapter' defined.\n" +"/usr/share/texmf/tex/latex/dblatex/docbook.sty:160: leading text: \\newfloat{example}{htb}{loe}[chapter]\n" +"/usr/share/texmf/tex/latex/dblatex/docbook.sty:164: No counter 'chapter' defined.\n" +"/usr/share/texmf/tex/latex/dblatex/docbook.sty:164: leading text: \\newfloat{dbequation}{htb}{loe}[chapter]\n" +"2912-corporate.docbook_tmp.tex:62: Illegal parameter number in definition of \\@the@H@page.\n" +"2912-corporate.docbook_tmp.tex:62: leading text: \\maketitle\n" +"2912-corporate.docbook_tmp.tex:62: Illegal parameter number in definition of \\@the@H@page.\n" +"2912-corporate.docbook_tmp.tex:62: leading text: \\maketitle\n" +"2912-corporate.docbook_tmp.tex:62: Illegal parameter number in definition of \\@the@H@page.\n" +"2912-corporate.docbook_tmp.tex:62: leading text: \\maketitle\n" +"Error: pdflatex compilation failed" + +msgid "Reporting Bugs" +msgstr "Reporting Bugs" + +msgid "" +"Report bugs on the automation " +"category of centos-artwork " +"project at the The " +"CentOS Bugs website." +msgstr "" +"Report bugs on the automation " +"category of centos-artwork " +"project at the The " +"CentOS Bugs website." + +msgid "Author" +msgstr "Author" + +msgid "" +"Written by Alain Reguera " +"Delgado, 2009-2013" +msgstr "" +"Written by Alain Reguera " +"Delgado, 2009-2013" + +msgid "Copyright" +msgstr "Copyright" + +msgid "Copyright © 2009-2013 The CentOS Project" +msgstr "Copyright © 2009-2013 The CentOS Project" + +msgid "" +"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." +msgstr "" +"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." + +msgid "" +"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." +msgstr "" +"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." + +msgid "" +"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." +msgstr "" +"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." + +#. Put one translator per line, in the form of NAME , YEAR1, YEAR2. +msgid "translator-credits" +msgstr "translator-credits" diff --git a/Documentation/Manpages/Locales/es_ES/render.asciidoc.po b/Documentation/Manpages/Locales/es_ES/render.asciidoc.po new file mode 100644 index 0000000..f7693db --- /dev/null +++ b/Documentation/Manpages/Locales/es_ES/render.asciidoc.po @@ -0,0 +1,834 @@ +msgid "" +msgstr "" +"Project-Id-Version: centos-art.sh 0.5\n" +"POT-Creation-Date: 2013-08-06 01:36-0400\n" +"PO-Revision-Date: 2013-08-06 01:36-0400\n" +"Last-Translator: Localization SIG \n" +"Language-Team: Spanish\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +msgid "centos-art.sh-render" +msgstr "" + +msgid "1" +msgstr "" + +msgid "Standardize production tasks based on configuration files." +msgstr "Normaliza las tareas de producción basado en ficheros de configuración" + +msgid "centos-art.sh render [OPTIONS] [DIRECTORY …]" +msgstr "" + +msgid "Description" +msgstr "Descripción" + +msgid "" +"When you execute the render module, it " +"looks for configuration files inside the “DIRECTORY” specified in the " +"command-line and processes them in the order they were found. When no " +"“DIRECTORY” is specified to centos-art.sh script, the render module " +"looks for configuration files inside the current directory it was executed " +"from. If no configuration file is found, the render module will end its execution with an error message." +msgstr "" + +msgid "Options" +msgstr "" + +msgid "" +"The render module accepts the following " +"options:" +msgstr "" + +msgid "--help" +msgstr "" + +msgid "" +"This option shows the render module's " +"documentation (this page)." +msgstr "" + +msgid "--version" +msgstr "" + +msgid "" +"This option shows the render module's " +"name and version." +msgstr "" + +msgid "--filter=\"REGEX\"" +msgstr "" + +msgid "" +"This option reduces the number of section blocks inside configuration files " +"the render module will take for " +"processing. “REGEX” is a regular expression pattern matching one or more " +"section names inside the configuration files found under “DIRECTORY”." +msgstr "" + +msgid "Configuration Files" +msgstr "" + +msgid "" +"The configuration files are regular files with the .conf " +"extension. The name of configuration files is frequently chosen for helping " +"you to remember what the configuration files are for and, in some cases, for " +"producing section blocks in specific order." +msgstr "" + +msgid "" +"The format used in configuration files use section blocks in the form " +"[section-name]. Each section block ends when the next " +"section block begins or at the end of the file. Section blocks contain one " +"or more variable definitions in the form option = \"value\". In the specific case of render module, the section-name is an alphanumeric " +"value and points to the final file or directory you want to save the " +"processing results in. The configuration variables describe how to produce " +"the file or directory specified as section-name. Name " +"values in the section-name don't accept variables or any " +"kind of expansion in it, but configuration values do. Commentaries are " +"introduced by using the # character at the beginning of " +"lines. Commentaries defined this way are excluded from processing so you can " +"use them freely." +msgstr "" + +msgid "" +"The configuration files are processed from top to bottom. This is a very " +"important aspect to consider in situations where you need to grantee " +"specific priority for content production (e.g., you have several files in a " +"configuration file and need to produce some of them before others). So, " +"because configuration files are processed from top to bottom, section blocks " +"set first in the configuration file are processed first and section blocks " +"set later are processed later." +msgstr "" + +msgid "" +"The configuration files can be divided in separated configuration files to " +"produce specific section blocks with a given priority. For example, if you " +"have the file “render.conf”, you can divide its content in “render-1.conf”, " +"“render-2.conf” to produce section blocks inside “render-1.conf” first and " +"“render-2.conf” later. This sort of division might be very useful when the " +"configuration file begins to grow, or you want to control the order in which " +"specific groups of files are produced inside “DIRECTORY”." +msgstr "" + +msgid "" +"Inside configuration files, configuration variables can take different " +"meanings based on the section contexts. The context of a section block is " +"defined by the render-type variables." +msgstr "" + +msgid "render-type" +msgstr "" + +msgid "" +"Optional. This variable specifies the type of content rendition the " +"render module will perform. This " +"variable can take one of the following values: “archive”, “asciidoc”, " +"“compress”, “images”, “palette”, and “svg”. When this variable is not set, " +"the render module tries to determine " +"the type of rendition based on the file extension of the first file passed " +"through render-from variable. If no " +"valid value is found there either, the render module ends with an error message." +msgstr "" + +msgid "render-from" +msgstr "" + +msgid "" +"Required. This variable specifies the file name of the source file (design " +"model) used to produce the final file specified in the section line. This " +"option can receive absolute paths and relative paths. Absolute paths begin " +"with a slash (“/”) character while relative paths begin with the dot slash " +"(“./”) characters or no character at all. This variable can receive more " +"than one value by using either path expansion in one variable definition, or " +"several variables definitions." +msgstr "" + +msgid "Using Paths" +msgstr "" + +msgid "" +"When you provide absolute paths inside configuration files, there isn't " +"confusion about the location where the file is or should be. However, it " +"introduces rigidity to directory structures inside the working copy when it " +"is necessary to move directories from one place to another inside the " +"working copy. To eliminate this mobility restrictions, relative paths can be " +"used to create modular directory structures." +msgstr "" + +msgid "" +"When you use relative paths inside configuration files, paths are relative " +"to the location where the configuration file is stored in. This way it is " +"possible to move whole directory structures without touching the " +"configuration file and still have a render-able structures inside the " +"working copy. However, relative paths get limited in situations where the " +"production process needs files outside the directory where the configuration " +"file is stored in. In such cases, a combination of relative and absolute " +"paths is the solution to apply." +msgstr "" + +msgid "" +"When we need to use absolute paths to several files in the same directory (e." +"g., we are combining them all to produce a new image) but outside the " +"current directory the configuration file is stored in, it is possible to use " +"a list of absolute paths one beside another separated by space or we can use " +"path expansion which is shorter and easier to read. Path expansion is " +"interpreted when you enclose a list of file names in curly brackets using " +"comma as separator without spaces (e.g., /some/dir/{file1,file2," +"file3}). In order for path expansion to work correctly, all the " +"file names you put inside the curly brackets' list must exist in the " +"location specified first." +msgstr "" + +msgid "Using Environment Variables" +msgstr "" + +msgid "" +"The configuration files let you to use environment variables inside them. " +"This might result very useful when you need to provide absolute paths based " +"on variable information (e.g., the current locale information). Some of the " +"most important environment variables used by centos-art.sh script -and its configuration files- are " +"described below:" +msgstr "" + +msgid "TCAR_BASEDIR" +msgstr "" + +msgid "" +"This variable contains the absolute path to your repository's working copy. " +"The value of this variable is defined as read-only inside centos-art.sh script and cannot be modified later. As " +"a matter of convenience, users make use of their “~/.bash_profile” file to " +"define this variable there and, this way, skip the sometimes annoyance " +"absolute path questioning the centos-art.sh script does in order to know the absolute path of the working copy " +"it is going to work with." +msgstr "" + +msgid "" +"Whenever you set absolute paths inside configuration files to refer " +"locations inside your working copy, it is necessary that you use the " +"TCAR_BASEDIR environment variable in front of each path " +"definition you set. TCAR_SCRIPT_LANG_LL:: This variable " +"contains the language part of the current locale information. For instance, " +"if the current locale is “en_US.UTF-8”, the value of this variable would be " +"“en”. TCAR_SCRIPT_LANG_CC:: This variable contains the " +"country part of the current locale information. For instance, if the current " +"locale is “en_US.UTF-8”, the value of this variable would be “US”. " +"TCAR_SCRIPT_LANG_LC:: This variable contains the current " +"locale information in ll_CC format (e.g., es_ES). LANG:: " +"This variable contains the environment's current locale information." +msgstr "" + +msgid "Rendering Archives" +msgstr "" + +msgid "" +"When the render-type variable is set to " +"archive, the render " +"module takes the list of files set through render-" +"from variable and applies the value of command to them all in order to produce the final file " +"specified in the section line. When the command variable is not specified, " +"the /bin/tar --remove-files -czf command is used as " +"default." +msgstr "" + +msgid "Rendering Image Files" +msgstr "" + +msgid "" +"When the render-type variable is set to " +"svg, the section block is interpreted for rendering image " +"files. When rendering image files, the render-" +"from variable must point to a SVG files (either compressed or " +"uncompressed). The following following complementary variables are also " +"accepted:" +msgstr "" + +msgid "render-flow" +msgstr "" + +msgid "" +"Optional. This variable specifies the rendition flow to follow when " +"transforming SVG files into PNG images. This variable can take either " +"base or extended as value. The " +"base rendition flow takes one SVG file and produces just " +"one PNG image for it. The extended value applies the " +"base rendition flow and then transform the final PNG " +"image to different heights, formats, foreground colors and background " +"colors. By default, when this variable is not set, the base rendition flow is used." +msgstr "" + +msgid "export-id" +msgstr "" + +msgid "" +"Optional. This variable specifies the export id you want to use as reference " +"to produce PNG images from SVG files. The export-id is an attribute you " +"specified as unique value to an objects inside the SVG file in order to " +"export that object only but not the rest in the SVG file. If this variable " +"is not provided or it is empty, the drawing area of the SVG file is used as " +"reference to produce the final PNG image." +msgstr "" + +msgid "heights" +msgstr "" + +msgid "" +"Optional. This variable is available only for extended " +"rendition flow and specifies the different image heights you want to create " +"copies of the final PNG image. The values specified in this variable are " +"separated by white space and should be understandable by ImageMagick tool " +"set. When this variable is not provided, the render module will create copies of final PNG image for " +"several standard heights." +msgstr "" + +msgid "formats" +msgstr "" + +msgid "" +"Optional. This variable is available only for extended " +"rendition flow and specifies the different image formats you want to create " +"copies of the final PNG image. The values specified in this variable are " +"separated by white space and should be supported by ImageMagick tool set. " +"When this variable is not provided or set in the configuration file, the " +"render module will create copies of " +"final PNG image for several standard formats." +msgstr "" + +msgid "" +"To see the list of possible image formats supported by ImageMagick tool set, " +"run the following command: identify -list " +"format." +msgstr "" + +msgid "fgcolors" +msgstr "" + +msgid "" +"Optional. This variable is available only for extended " +"rendition flow and specifies the different foreground colors you want to " +"create copies of the final PNG image. To do this, the image you want to copy " +"should be rendered with black color (000000) so the color replacement can be " +"performed. The values specified in this variable are separated by white " +"space and should be understandable by ImageMagick tool set. When this " +"variable is not provided the black foreground (000000) is " +"used." +msgstr "" + +msgid "bgcolors" +msgstr "" + +msgid "" +"Optional. This variable is available only for extended " +"rendition flow and specifies the different background colors you want to " +"create copies of the final PNG image. This variable uses Inkscape's " +"--export-background and --export-background-" +"opacity options to control the background information of final " +"PNG images. Possible values to this variable take the form XXXXXX-" +"X, where the first six X represent a color in " +"hexadecimal format and the final X might be 1 or 0. 1 for " +"full opacity and 0 for full transparency. Intermediate values between 0 and " +"1 (e.g., 0.55) can be given to control the background opacity. When this " +"variable is not provided, white background full transparency " +"(ffffff-0) is used as default value." +msgstr "" + +msgid "command" +msgstr "" + +msgid "" +"Optional. This variable specifies the command used to modify the production " +"of final images. During the rendition process, images are produced inside a " +"temporal directory, and later moved to its final location using the command " +"specified as value in this variable. When this variable is not specified, it " +"can take one of two values based on the amount of files passed through " +"render-from variable. When just one " +"file is passed through the render-from " +"variable, the default value for this variable is /bin/cp, " +"but when there are reference to more than one file, the value of this option " +"is /usr/bin/convert +append which combines all images " +"into the final images." +msgstr "" + +msgid "comment" +msgstr "" + +msgid "" +"Optional. This variable contains a sentence describing the image you are " +"creating. This information is written in the comment " +"field of PNG images. When this variable is empty, no comment information " +"will be written to the final PNG image files." +msgstr "" + +msgid "brand" +msgstr "" + +msgid "" +"Optional. This variable describes the branding information applied to final " +"images. The value of this variable has the form FILENAME:GEOMETRY, where FILENAME is the absolute path to the PNG " +"image you want to apply as brand and, GEOMETRY takes the " +"form xHEIGHT+X+Y. In order to apply brand information to " +"final images correctly, the brand images files you want to apply must be " +"available. In case they don't exist the render module ends its execution with an error message." +msgstr "" + +msgid "Rendering Image Files From Other Image Files" +msgstr "" + +msgid "" +"To render image files from other image files, the render-type variable must be set to “images” and one or more " +"image files must be provided in the render-from variable. When the render " +"module finds a section block with this characteristics, it applies the value " +"of command variable to all files found " +"in render-from variable to produce the " +"final file specified in the section name." +msgstr "" + +msgid "" +"When the command variable is not " +"specified, the “/usr/bin/convert -append” command is used as default. This " +"command takes all the images passed through render-" +"from and appends them from top to bottom and saves the result in " +"the file you specified in the section name. When you render files this way, " +"the order in which you define source files through render-from may affect the final result based in the command you provided." +msgstr "" + +msgid "" +"The “images” rendition type provides an interface for external image " +"manipulation programs, like ImageMagick and NetPbm. You can use these " +"programs to manipulate images in great detail through the command-line." +msgstr "" + +msgid "Rendering Images With Reduced Number Of Colors" +msgstr "" + +msgid "" +"When the render-type variable is set to " +"palette, the section block where this variable was " +"defined is interpreted for producing images with a reduced number of colors. " +"In these cases, the render-from " +"variable must point to an image file. The following complementary variables " +"are also accepted:" +msgstr "" + +msgid "palette-gpl" +msgstr "" + +msgid "" +"Required. This variable addresses the palette of colors that will be use for " +"reducing colors. Generally, the palette of color file ends with the " +".gpl extension and is stored in the same directory of the " +"configuration file. This file can be produced by GIMP and provides an " +"optimized set of colors for the specific image you provided in the render-from variable." +msgstr "" + +msgid "" +"To find the optimized set of colors, you need to open the image specified in " +"render-from in GIMP, reduce its colors " +"to the desired number using GIMP's Indexed feature and, then, create a new " +"palette by importing it from the indexed image file. Once you have the " +"palette this way, you need to edit it using the Palettes dialog to add the " +"hexadecimal value of each color in the palette to the comment field, so you " +"have a palette file similar to the following:" +msgstr "" + +#, no-wrap +msgid "" +"GIMP Palette\n" +"Name: Syslinux-Default\n" +"Columns: 16\n" +"#\n" +" 32 76 141 204c8d\n" +" 37 82 146 255292\n" +" 52 94 153 345e99\n" +" 73 110 162 496ea2\n" +" 91 124 172 5b7cac\n" +"108 136 180 6c88b4\n" +"120 146 186 7892ba\n" +"131 158 193 839ec1\n" +"255 255 255 ffffff\n" +"146 170 200 92aac8\n" +"162 182 209 a2b6d1\n" +"183 199 219 b7c7db\n" +"204 216 230 ccd8e6\n" +"221 229 238 dde5ee\n" +"235 241 245 ebf1f5\n" +"246 251 254 f6fbfe" +msgstr "" + +msgid "" +"Now that the palette has been created, you can set a path to palette-gpl variable. Even you can set path of " +"palette-gpl from GIMP's palettes " +"directory (~/.gimp-x.x/palettes/), it is much more " +"preferable that you copy the palette file from that location to the " +"configuration file's DIRECTORY inside the repository and put it under " +"version control, so others can take benefit of it. The palette file is an " +"integral part of color specific image reduction so it must be near the " +"configuration file you use for such actions." +msgstr "" + +msgid "Rendering Documentation Files" +msgstr "" + +msgid "" +"To render documentation files, the render-type variable must be set to “asciidoc” and the render-from variable must point to an Asciidoc file. When the " +"render module finds this information in " +"a section block, it takes the asciidoc file as source and transforms it into " +"a docbook file using the asciidoc " +"program. The docbook file is created temporarily for further format " +"transformations and removed later, once the final format has been rendered." +msgstr "" + +msgid "" +"When the render module creates the " +"intermediate docbook file, it considers the current locale information of " +"your environment (e.g., by reading the LANG environment variable). In case " +"the current locale information is different to English (e.g., the value of " +"LANG environment variable doesn't begin with the “en” characters), the " +"docbook file will be localized based on the translation file specified in " +"the locale-from variable, before " +"applying further format transformations to it. This way, further format " +"transformations from the temporarily docbook file will end up being " +"localized as well. If the locale-from " +"variable is not present in the section block, the intermediate docbook file " +"won't be localized which make the final result to be not localized either." +msgstr "" + +msgid "" +"When you set the render-type variable " +"to “asciidoc”, the section blocks need to have the render-flow variable set to “article”, “book” or “manpage”. " +"This information defines the way the intermediate docbook file is produced " +"from the asciidoc file and, by extension, the possible final results, too." +msgstr "" + +msgid "" +"When render-flow variable is set to " +"“article” or “book”, it is possible to produce final files in “xhtml” format " +"but not in “manpage” format. This is because man pages require a specific " +"document structure that both articles and books don't need to have. When " +"producing articles and books in XHTML format, you can use the render-page variable to control whether to produce the " +"entire book or article in just one file (“single”) or in separate files " +"linked one another (“chunks”)." +msgstr "" + +msgid "" +"When render-flow variable is set to " +"“manpage” it is possible to set the formats variable to either “manpage” or “xhtml” in order to render the " +"docbook file as man page or XHTML format, respectively. you are producing " +"man pages to a language different to English, these required in order for " +"man command to find the man pages in " +"different locales. The value of the man's volume section can be set using " +"the mansect variable. If this variable " +"is not set, the value of man's volume section will be 1." +msgstr "" + +msgid "" +"When render-flow variable is not set, " +"the “article” value is used as default value." +msgstr "" + +msgid "" +"When the formats variable has the " +"“xhtml” value, you need to set the images-from and styles-from variables " +"inside the related section block, no matter what the value of render-flow would be. The value of images-from and styles-from variables must point to a directory, inside the working copy, " +"containing the share images and CSS files used by XHTML documents, " +"respectively. If none of these two variables are set the directories them." +msgstr "" + +msgid "" +"When the formats variable is not set, " +"the “xhtml” value is used as default value." +msgstr "" + +msgid "Rendering Localized Images" +msgstr "" + +msgid "" +"To produce localized content, you need to set the locale-from variable in the section block you want to provide " +"translations and point its value to the translation file where string " +"translations will take place. Then, you need to check the value of LANG " +"environment variable to be sure it has the locale information you want to " +"translate messages for." +msgstr "" + +msgid "" +"If the LANG environment variable has the value you expect, run the locale module on the “DIRECTORY” you want to " +"locale content. This read the source files you specified in render-from variable and would create the translation " +"files (a.k.a., portable objects) you need to edit to provide the string " +"translations from one language to another. Verify the translation file exist " +"and edit it to provide the strings translations. Once the strings have been " +"translated, execute the render module " +"on the “DIRECTORY”." +msgstr "" + +msgid "" +"When the render module finds the " +"locale-from variable in a section " +"block, it uses the xml2po program to " +"create a localized instance of each source file it finds in render-from variable. Then, using the source files' " +"localized instances, it produces the final files based on render-type variable's value." +msgstr "" + +msgid "Examples" +msgstr "" + +msgid "" +"Here are some practical configuration examples you can use as reference to " +"create your own configuration files." +msgstr "" + +#, no-wrap +msgid "" +"[Xhtml-single]\n" +"render-type = \"asciidoc\"\n" +"render-flow = \"article\"\n" +"render-from = \"corporate.asciidoc\"\n" +"locale-from = \"${TCAR_SCRIPT_LANG_LC}/messages.po\"\n" +"images-from = \"${TCAR_BASEDIR}/Artworks/Icons/Webenv\"\n" +"styles-from = \"${TCAR_BASEDIR}/Artworks/Webenv/Docbook/1.69.1/Css\"\n" +"formats = \"xhtml\"\n" +"render-page = \"single\"" +msgstr "" + +msgid "" +"When the render module reads this " +"configuration file, it initiates the asscidoc module " +"which in turn initiates the xhtml module for transforming " +"the corporate.asciidoc file into corporate." +"docbook file using article as document type and " +"result, the render module produces the " +"directory of the configuration file as base directory." +msgstr "" + +#, no-wrap +msgid "" +"[centos-artwork.png]\n" +"render-from = \"${TCAR_BASEDIR}/Artworks/Brands/Types/Webenv/centos.org/{centos,artwork}.svgz\"\n" +"formats = \"xpm pdf jpg tif\"\n" +"heights = \"16 20 22 24 32 36 38 40 48 64 72 78 96 112 124 128 148 164 196 200 512\"\n" +"fgcolors = \"000000 ffffff\"\n" +"bgcolors = \"ffffff-0\"\n" +"command = \"/usr/bin/convert +append\"" +msgstr "" + +msgid "" +"When the render module reads this " +"configuration file, it takes the centos.svgz and " +"artwork.svgz files as source to produce the " +"centos.png and artwork.png files " +"considering the first value in the list of heights, background, foreground " +"colors specified in the configuration file. Then, it combines the results " +"horizontally to create the centos-artwork.png file. " +"Later, the centos-artwork.png file is converted to " +"produce one image file for each image format specified in the configuration " +"file. At this point, all the process repeats again but for the next height " +"and color values in the list." +msgstr "" + +#, no-wrap +msgid "" +"[syslinux-splash.png]\n" +"render-from = \"${TCAR_BASEDIR}/Artworks/Themes/Models/Distro/5/Syslinux/syslinux-splash.svgz\"\n" +"brand = \"${TCAR_BASEDIR}/Artworks/Brands/Types/Default/Images/ffffff/ffffff-0/48/centos.png:x48+20+232\"\n" +"brand = \"${TCAR_BASEDIR}/Artworks/Brands/Types/Numbers/Images/ffffff/ffffff-0/96/5.png:x96+300+184\"\n" +"\n" +"[syslinux-splash.lss]\n" +"render-from = \"syslinux-splash.png\"\n" +"render-type = \"palette\"\n" +"palette-gpl = \"colors.gpl\"" +msgstr "" + +msgid "" +"When the render module reads this " +"configuration file," +msgstr "" + +#, no-wrap +msgid "" +"[screenshot.png]\n" +"render-type = \"svg\"\n" +"render-from = \"${TCAR_BASEDIR}/Artworks/Themes/Models/Distro/5/Gdm/screenshot.svgz\"\n" +"render-flow = \"base\"\n" +"brand = \"${TCAR_BASEDIR}/Artworks/Brands/Symbols/Default/Images/ffffff/ffffff-0/16/centos.png:x16+5+5\"\n" +"\n" +"[800x600.tar.gz]\n" +"render-type = \"archive\"\n" +"render-from = \"${TCAR_BASEDIR}/Artworks/Themes/Motifs/${MOTIF}/Backgrounds/Images/800x600-final.png:background.png\"\n" +"render-from = \"${TCAR_BASEDIR}/Artworks/Themes/Models/Distro/5/Gdm/GdmGreeterTheme.desktop\"\n" +"render-from = \"${TCAR_BASEDIR}/Artworks/Themes/Models/Distro/5/Gdm/GdmGreeterTheme.xml\"\n" +"render-from = \"${TCAR_BASEDIR}/Artworks/Themes/Models/Distro/5/Gdm/icon-language.png\"\n" +"render-from = \"${TCAR_BASEDIR}/Artworks/Themes/Models/Distro/5/Gdm/icon-reboot.png\"\n" +"render-from = \"${TCAR_BASEDIR}/Artworks/Themes/Models/Distro/5/Gdm/icon-session.png\"\n" +"render-from = \"${TCAR_BASEDIR}/Artworks/Themes/Models/Distro/5/Gdm/icon-shutdown.png\"\n" +"render-from = \"screenshot.png\"\n" +"command = \"/bin/tar -czf\"\n" +"\n" +"[1360x768.tar.gz]\n" +"render-type = \"archive\"\n" +"render-from = \"${TCAR_BASEDIR}/Artworks/Themes/Motifs/${MOTIF}/Backgrounds/Images/1360x768-final.png:background.png\"\n" +"render-from = \"${TCAR_BASEDIR}/Artworks/Themes/Models/Distro/5/Gdm/GdmGreeterTheme.desktop\"\n" +"render-from = \"${TCAR_BASEDIR}/Artworks/Themes/Models/Distro/5/Gdm/GdmGreeterTheme.xml\"\n" +"render-from = \"${TCAR_BASEDIR}/Artworks/Themes/Models/Distro/5/Gdm/icon-language.png\"\n" +"render-from = \"${TCAR_BASEDIR}/Artworks/Themes/Models/Distro/5/Gdm/icon-reboot.png\"\n" +"render-from = \"${TCAR_BASEDIR}/Artworks/Themes/Models/Distro/5/Gdm/icon-session.png\"\n" +"render-from = \"${TCAR_BASEDIR}/Artworks/Themes/Models/Distro/5/Gdm/icon-shutdown.png\"\n" +"render-from = \"screenshot.png\"\n" +"command = \"/bin/tar --remove-files -czf\"" +msgstr "" + +msgid "Bugs" +msgstr "" + +msgid "" +"The render module has some issues I " +"would like you to be aware of. Mainly, to see if you could help me find " +"better solutions for them ;)" +msgstr "" + +msgid "" +"The process implemented to reduce image colors through GIMP's palettes " +"involves too much user intervention compared with ImageMagick's --colors " +"option that reduces image colors instantly without user intervention. " +"Nevertheless, the procedure of reducing color through GIMP's palettes " +"provides more quality to final images than ImageMagic's --colors option " +"does. Also, using GIMP's palettes let us create LSS images from PNG images " +"using the same exact information we used to reduce colors on PNG images. " +"This is very important in order to have the same result in both image types. " +"Because of these reasons I prefer GIMP's palettes procedure against others " +"methods like it is the case of ImageMagick's for producing images with " +"reduced number of colors." +msgstr "" + +msgid "Rendering PDF Files From Localized Docbook Files" +msgstr "" + +msgid "" +"Even it is possible to produce PDF files from Docbook files using current " +"applications inside CentOS-5, there are some production issues when we use " +"localized docbook files as source to produce localized PDF files that made " +"me not to implement them as part of centos-art.sh script by now." +msgstr "" + +msgid "" +"When using the XML(DocBook)->XML(FO)->PDF transformation chain, the " +"result produced by docbook-style-xsl-1.69.1-5.1 and " +"passivetex-1.25-5.1.1 doesn't render heading boxes very " +"well on page's top and page's bottom. The text put inside these boxes seem " +"to have not enough space in their respective areas." +msgstr "" + +msgid "" +"Tried using dblatex-0.2.8-2.el5 but didn't work for " +"localized docbook files (i.e., those who has the lang=\"lang\" string in their root element). If you just remove the language " +"specification string it just work. We need the language specification in " +"order for internal document strings like Abstract and " +"Table of contents to be automatically translated. When " +"the language specific attribute is present in the root element, dblatex " +"outputs the following:" +msgstr "" + +#, no-wrap +msgid "" +"Build the listings...\n" +"XSLT stylesheets DocBook - LaTeX 2e (0.2.8)\n" +"===================================================\n" +"Processing Revision History\n" +"Build 2912-corporate.docbook.pdf\n" +"This is pdfeTeX, Version 3.141592-1.21a-2.2 (Web2C 7.5.4)\n" +"entering extended mode\n" +"pdflatex failed\n" +"/usr/share/texmf/tex/latex/dblatex/docbook.sty:160: No counter 'chapter' defined.\n" +"/usr/share/texmf/tex/latex/dblatex/docbook.sty:160: leading text: \\newfloat{example}{htb}{loe}[chapter]\n" +"/usr/share/texmf/tex/latex/dblatex/docbook.sty:164: No counter 'chapter' defined.\n" +"/usr/share/texmf/tex/latex/dblatex/docbook.sty:164: leading text: \\newfloat{dbequation}{htb}{loe}[chapter]\n" +"2912-corporate.docbook_tmp.tex:62: Illegal parameter number in definition of \\@the@H@page.\n" +"2912-corporate.docbook_tmp.tex:62: leading text: \\maketitle\n" +"2912-corporate.docbook_tmp.tex:62: Illegal parameter number in definition of \\@the@H@page.\n" +"2912-corporate.docbook_tmp.tex:62: leading text: \\maketitle\n" +"2912-corporate.docbook_tmp.tex:62: Illegal parameter number in definition of \\@the@H@page.\n" +"2912-corporate.docbook_tmp.tex:62: leading text: \\maketitle\n" +"Error: pdflatex compilation failed" +msgstr "" + +msgid "Reporting Bugs" +msgstr "" + +msgid "" +"Report bugs on the automation category " +"of centos-artwork project at the The CentOS Bugs website." +msgstr "" + +msgid "Author" +msgstr "" + +msgid "" +"Written by Alain Reguera Delgado, 2009-2013" +msgstr "" + +msgid "Copyright" +msgstr "" + +msgid "Copyright © 2009-2013 The CentOS Project" +msgstr "" + +msgid "" +"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." +msgstr "" + +msgid "" +"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." +msgstr "" + +msgid "" +"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." +msgstr "" + +#. Put one translator per line, in the form of NAME , YEAR1, YEAR2. +msgid "translator-credits" +msgstr "" diff --git a/Documentation/Manpages/render.asciidoc b/Documentation/Manpages/render.asciidoc new file mode 100644 index 0000000..1080c94 --- /dev/null +++ b/Documentation/Manpages/render.asciidoc @@ -0,0 +1,656 @@ +render(1) +========= + +Name +---- + +render - Standardize production tasks based on configuration files. + +Synopsis +-------- + +centos-art.sh render [OPTIONS] [DIRECTORY ...] + +Description +----------- + +When you execute the *render* module, it looks for configuration files +inside the ``DIRECTORY'' specified in the command-line and processes +them in the order they were found. When no ``DIRECTORY'' is specified +to *centos-art.sh* script, the *render* module looks for configuration +files inside the current directory it was executed from. If no +configuration file is found, the *render* module will end its +execution with an error message. + +Options +------- + +The *render* module accepts the following options: + +*--help*:: + Print module's documentation. +*--version*:: + Print module's version. +*--filter="REGEX"*:: + This option reduces the number of section blocks inside + configuration files the *render* module will take for processing. + ``REGEX'' is a regular expression pattern matching one or more + section names inside the configuration files found under + ``DIRECTORY''. + +Configuration Files +------------------- + +The configuration files are regular files with the +.conf+ extension. +The name of configuration files is frequently chosen for helping you +to remember what the configuration files are for and, in some cases, +for producing section blocks in specific order. + +The format used in configuration files use section blocks in the form ++[section-name]+. Each section block ends when the next section block +begins or at the end of the file. Section blocks contain one or more +variable definitions in the form +option = "value"+. In the specific +case of *render* module, the +section-name+ is an alphanumeric value +and points to the final file or directory you want to save the +processing results in. The configuration variables describe how to +produce the file or directory specified as +section-name+. Name +values in the +section-name+ don't accept variables or any kind of +expansion in it, but configuration values do. Commentaries are +introduced by using the +#+ character at the beginning of lines. +Commentaries defined this way are excluded from processing so you can +use them freely. + +The configuration files are processed from top to bottom. This is a +very important aspect to consider in situations where you need to +grantee specific priority for content production (e.g., you have +several files in a configuration file and need to produce some of them +before others). So, because configuration files are processed from top +to bottom, section blocks set first in the configuration file are +processed first and section blocks set later are processed later. + +The configuration files can be divided in separated configuration +files to produce specific section blocks with a given priority. For +example, if you have the file ``render.conf'', you can divide its +content in ``render-1.conf'', ``render-2.conf'' to produce section +blocks inside ``render-1.conf'' first and ``render-2.conf'' later. +This sort of division might be very useful when the configuration file +begins to grow, or you want to control the order in which specific +groups of files are produced inside ``DIRECTORY''. + +Inside configuration files, configuration variables can take different +meanings based on the section contexts. The context of a section block +is defined by the *render-type* variables. + +*render-type*:: + Optional. This variable specifies the type of content rendition + the *render* module will perform. This variable can take one of + the following values: ``archive'', ``asciidoc'', ``compress'', + ``images'', ``palette'', and ``svg''. When this variable is not + set, the *render* module tries to determine the type of rendition + based on the file extension of the first file passed through + *render-from* variable. If no valid value is found there either, + the *render* module ends with an error message. +*render-from*:: + Required. This variable specifies the file name of the source file + (design model) used to produce the final file specified in the + section line. This option can receive absolute paths and relative + paths. Absolute paths begin with a slash (``/'') character while + relative paths begin with the dot slash (``./'') characters or no + character at all. This variable can receive more than one value by + using either path expansion in one variable definition, or several + variables definitions. + +Using Paths +~~~~~~~~~~~ + +When you provide absolute paths inside configuration files, there +isn't confusion about the location where the file is or should be. +However, it introduces rigidity to directory structures inside the +working copy when it is necessary to move directories from one place +to another inside the working copy. To eliminate this mobility +restrictions, relative paths can be used to create modular directory +structures. + +When you use relative paths inside configuration files, paths are +relative to the location where the configuration file is stored in. +This way it is possible to move whole directory structures without +touching the configuration file and still have a render-able +structures inside the working copy. However, relative paths get +limited in situations where the production process needs files outside +the directory where the configuration file is stored in. In such +cases, a combination of relative and absolute paths is the solution to +apply. + +When we need to use absolute paths to several files in the same +directory (e.g., we are combining them all to produce a new image) but +outside the current directory the configuration file is stored in, it +is possible to use a list of absolute paths one beside another +separated by space or we can use path expansion which is shorter and +easier to read. Path expansion is interpreted when you enclose a list +of file names in curly brackets using comma as separator without +spaces (e.g., +/some/dir/{file1,file2,file3}+). In order for path +expansion to work correctly, all the file names you put inside the +curly brackets' list must exist in the location specified first. + +Using Environment Variables +~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +The configuration files let you to use environment variables inside +them. This might result very useful when you need to provide absolute +paths based on variable information (e.g., the current locale +information). Some of the most important environment variables used +by *centos-art.sh* script -and its configuration files- are described +below: + ++TCAR_BASEDIR+:: + This variable contains the absolute path to your repository's + working copy. The value of this variable is defined as read-only + inside *centos-art.sh* script and cannot be modified later. As a + matter of convenience, users make use of their ``~/.bash_profile'' + file to define this variable there and, this way, skip the + sometimes annoyance absolute path questioning the *centos-art.sh* + script does in order to know the absolute path of the working copy + it is going to work with. ++ +Whenever you set absolute paths inside configuration files to refer +locations inside your working copy, it is necessary that you use the ++TCAR_BASEDIR+ environment variable in front of each path definition +you set. ++TCAR_SCRIPT_LANG_LL+:: + This variable contains the language part of the current locale + information. For instance, if the current locale is + ``en_US.UTF-8'', the value of this variable would be ``en''. ++TCAR_SCRIPT_LANG_CC+:: + This variable contains the country part of the current locale + information. For instance, if the current locale is + ``en_US.UTF-8'', the value of this variable would be ``US''. ++TCAR_SCRIPT_LANG_LC+:: + This variable contains the current locale information in ll_CC + format (e.g., es_ES). ++LANG+:: + This variable contains the environment's current locale + information. + +Rendering Archives +~~~~~~~~~~~~~~~~~~ + +When the *render-type* variable is set to +archive+, the *render* +module takes the list of files set through *render-from* variable and +applies the value of *command* to them all in order to produce the +final file specified in the section line. When the command variable is +not specified, the +/bin/tar --remove-files -czf+ command is used as +default. + +Rendering Image Files +~~~~~~~~~~~~~~~~~~~~~ + +When the *render-type* variable is set to +svg+, the section block is +interpreted for rendering image files. When rendering image files, the +*render-from* variable must point to a SVG files (either compressed or +uncompressed). The following following complementary variables are +also accepted: + +*render-flow*:: + Optional. This variable specifies the rendition flow to follow + when transforming SVG files into PNG images. This variable can + take either +base+ or +extended+ as value. The +base+ rendition + flow takes one SVG file and produces just one PNG image for it. + The +extended+ value applies the +base+ rendition flow and then + transform the final PNG image to different heights, formats, + foreground colors and background colors. By default, when this + variable is not set, the +base+ rendition flow is used. +*export-id*:: + Optional. This variable specifies the export id you want to use as + reference to produce PNG images from SVG files. The export-id is + an attribute you specified as unique value to an objects inside + the SVG file in order to export that object only but not the rest + in the SVG file. If this variable is not provided or it is empty, + the drawing area of the SVG file is used as reference to produce + the final PNG image. +*heights*:: + Optional. This variable is available only for +extended+ rendition + flow and specifies the different image heights you want to create + copies of the final PNG image. The values specified in this + variable are separated by white space and should be understandable + by ImageMagick tool set. When this variable is not provided, the + *render* module will create copies of final PNG image for several + standard heights. +*formats*:: + Optional. This variable is available only for +extended+ rendition + flow and specifies the different image formats you want to create + copies of the final PNG image. The values specified in this + variable are separated by white space and should be supported by + ImageMagick tool set. When this variable is not provided or set + in the configuration file, the *render* module will create copies + of final PNG image for several standard formats. ++ +[TIP] +To see the list of possible image formats supported by ImageMagick +tool set, run the following command: *+identify -list format+*. + +*fgcolors*:: + Optional. This variable is available only for +extended+ rendition + flow and specifies the different foreground colors you want to + create copies of the final PNG image. To do this, the image you + want to copy should be rendered with black color (000000) so the + color replacement can be performed. The values specified in this + variable are separated by white space and should be understandable + by ImageMagick tool set. When this variable is not provided the + black foreground (+000000+) is used. +*bgcolors*:: + Optional. This variable is available only for +extended+ rendition + flow and specifies the different background colors you want to + create copies of the final PNG image. This variable uses + Inkscape's _--export-background_ and _--export-background-opacity_ + options to control the background information of final PNG images. + Possible values to this variable take the form +XXXXXX-X+, where + the first six +X+ represent a color in hexadecimal format and the + final +X+ might be 1 or 0. 1 for full opacity and 0 for full + transparency. Intermediate values between 0 and 1 (e.g., 0.55) + can be given to control the background opacity. When this variable + is not provided, white background full transparency (+ffffff-0+) + is used as default value. +*command*:: + Optional. This variable specifies the command used to modify the + production of final images. During the rendition process, images + are produced inside a temporal directory, and later moved to its + final location using the command specified as value in this + variable. When this variable is not specified, it can take one of + two values based on the amount of files passed through + *render-from* variable. When just one file is passed through the + *render-from* variable, the default value for this variable is + +/bin/cp+, but when there are reference to more than one file, the + value of this option is +/usr/bin/convert +append+ which combines + all images into the final images. +*comment*:: + Optional. This variable contains a sentence describing the image + you are creating. This information is written in the +comment+ + field of PNG images. When this variable is empty, no comment + information will be written to the final PNG image files. +*brand*:: + Optional. This variable describes the branding information applied + to final images. The value of this variable has the form + +FILENAME:GEOMETRY+, where +FILENAME+ is the absolute path to the + PNG image you want to apply as brand and, +GEOMETRY+ takes the + form +xHEIGHT+X+Y+. In order to apply brand information to final + images correctly, the brand images files you want to apply must be + available. In case they don't exist the *render* module ends its + execution with an error message. + +Rendering Image Files From Other Image Files +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +To render image files from other image files, the *render-type* +variable must be set to ``images'' and one or more image files must be +provided in the *render-from* variable. When the *render* module finds +a section block with this characteristics, it applies the value of +*command* variable to all files found in *render-from* variable to +produce the final file specified in the section name. + +When the *command* variable is not specified, the ``/usr/bin/convert +-append'' command is used as default. This command takes all the +images passed through *render-from* and appends them from top to +bottom and saves the result in the file you specified in the section +name. When you render files this way, the order in which you define +source files through *render-from* may affect the final result based +in the *command* you provided. + +The ``images'' rendition type provides an interface for external image +manipulation programs, like ImageMagick and NetPbm. You can use these +programs to manipulate images in great detail through the +command-line. + +Rendering Images With Reduced Number Of Colors +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +When the *render-type* variable is set to +palette+, the section block +where this variable was defined is interpreted for producing images +with a reduced number of colors. In these cases, the *render-from* +variable must point to an image file. The following complementary +variables are also accepted: + +*palette-gpl*:: + Required. This variable addresses the palette of colors that will + be use for reducing colors. Generally, the palette of color file + ends with the +.gpl+ extension and is stored in the same directory + of the configuration file. This file can be produced by GIMP and + provides an optimized set of colors for the specific image you + provided in the *render-from* variable. ++ +To find the optimized set of colors, you need to open the image +specified in *render-from* in GIMP, reduce its colors to the desired +number using GIMP's Indexed feature and, then, create a new palette by +importing it from the indexed image file. Once you have the palette +this way, you need to edit it using the Palettes dialog to add the +hexadecimal value of each color in the palette to the comment field, +so you have a palette file similar to the following: ++ +---------------------------------------------------------------------- +GIMP Palette +Name: Syslinux-Default +Columns: 16 +# + 32 76 141 204c8d + 37 82 146 255292 + 52 94 153 345e99 + 73 110 162 496ea2 + 91 124 172 5b7cac +108 136 180 6c88b4 +120 146 186 7892ba +131 158 193 839ec1 +255 255 255 ffffff +146 170 200 92aac8 +162 182 209 a2b6d1 +183 199 219 b7c7db +204 216 230 ccd8e6 +221 229 238 dde5ee +235 241 245 ebf1f5 +246 251 254 f6fbfe +---------------------------------------------------------------------- ++ +{asciidoc-br} ++ +Now that the palette has been created, you can set a path to +*palette-gpl* variable. Even you can set path of *palette-gpl* from +GIMP's palettes directory (+~/.gimp-x.x/palettes/+), it is much more +preferable that you copy the palette file from that location to the +configuration file's DIRECTORY inside the repository and put it under +version control, so others can take benefit of it. The palette file +is an integral part of color specific image reduction so it must be +near the configuration file you use for such actions. + +Rendering Documentation Files +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +To render documentation files, the *render-type* variable must be set +to ``asciidoc'' and the *render-from* variable must point to an +Asciidoc file. When the *render* module finds this information in a +section block, it takes the asciidoc file as source and transforms it +into a docbook file using the *asciidoc* program. The docbook file is +created temporarily for further format transformations and removed +later, once the final format has been rendered. + +When the *render* module creates the intermediate docbook file, it +considers the current locale information of your environment (e.g., by +reading the LANG environment variable). In case the current locale +information is different to English (e.g., the value of LANG +environment variable doesn't begin with the ``en'' characters), the +docbook file will be localized based on the translation file specified +in the *locale-from* variable, before applying further format +transformations to it. This way, further format transformations from +the temporarily docbook file will end up being localized as well. If +the *locale-from* variable is not present in the section block, the +intermediate docbook file won't be localized which make the final +result to be not localized either. + +When you set the *render-type* variable to ``asciidoc'', the section +blocks need to have the *render-flow* variable set to ``article'', +``book'' or ``manpage''. This information defines the way the +intermediate docbook file is produced from the asciidoc file and, by +extension, the possible final results, too. + +When *render-flow* variable is set to ``article'' or ``book'', it is +possible to produce final files in ``xhtml'' format but not in +``manpage'' format. This is because man pages require a specific +document structure that both articles and books don't need to have. +When producing articles and books in XHTML format, you can use the +*render-page* variable to control whether to produce the entire book +or article in just one file (``single'') or in separate files linked +one another (``chunks''). + +When *render-flow* variable is set to ``manpage'' it is possible to +set the *formats* variable to either ``manpage'' or ``xhtml'' in order +to render the docbook file as man page or XHTML format, respectively. +The final files produced this way are stored in the +man${MANSECT}/+ +or +htmlman${MANSECT}+ directories based on the format you choose. If +you are producing man pages to a language different to English, these +directories would be +${LANG}/man${MANSECT}/+ and ++${LANG}/htmlman${MANSECT}+, instead. The structure of these paths is +required in order for *man* command to find the man pages in different +locales. The value of the man's volume section can be set using the +*mansect* variable. If this variable is not set, the value of man's +volume section will be 1. + +When *render-flow* variable is not set, the ``article'' value is used +as default value. + +When the *formats* variable has the ``xhtml'' value, you need to set +the *images-from* and *styles-from* variables inside the related +section block, no matter what the value of *render-flow* would be. The +value of *images-from* and *styles-from* variables must point to a +directory, inside the working copy, containing the share images and +CSS files used by XHTML documents, respectively. If none of these two +variables are set the directories ++${TCAR_BASEDIR}/Artworks/Icons/Webenv+ and ++${TCAR_BASEDIR}/Artworks/Webenv/Docbook/1.69.1/Css+ will be used for +them. + +When the *formats* variable is not set, the ``xhtml'' value is used as +default value. + +Rendering Localized Images +-------------------------- + +To produce localized content, you need to set the *locale-from* +variable in the section block you want to provide translations and +point its value to the translation file where string translations will +take place. Then, you need to check the value of LANG environment +variable to be sure it has the locale information you want to +translate messages for. + +If the LANG environment variable has the value you expect, run the +*locale* module on the ``DIRECTORY'' you want to locale content. This +read the source files you specified in *render-from* variable and +would create the translation files (a.k.a., portable objects) you need +to edit to provide the string translations from one language to +another. Verify the translation file exist and edit it to provide the +strings translations. Once the strings have been translated, execute +the *render* module on the ``DIRECTORY''. + +When the *render* module finds the *locale-from* variable in a section +block, it uses the *xml2po* program to create a localized instance of +each source file it finds in *render-from* variable. Then, using the +source files' localized instances, it produces the final files based +on *render-type* variable's value. + +Examples +-------- + +Here are some practical configuration examples you can use as +reference to create your own configuration files. + +---------------------------------------------------------------------- +[Xhtml-single] +render-type = "asciidoc" +render-flow = "article" +render-from = "corporate.asciidoc" +locale-from = "${TCAR_SCRIPT_LANG_LC}/messages.po" +images-from = "${TCAR_BASEDIR}/Artworks/Icons/Webenv" +styles-from = "${TCAR_BASEDIR}/Artworks/Webenv/Docbook/1.69.1/Css" +formats = "xhtml" +render-page = "single" +---------------------------------------------------------------------- + +{asciidoc-br} + +When the *render* module reads this configuration file, it initiates +the +asscidoc+ module which in turn initiates the +xhtml+ module for +transforming the +corporate.asciidoc+ file into +corporate.docbook+ file +using +article+ as document type and ++${TCAR_SCRIPT_LANG_LC}/messages.po+ as source for localization. As +result, the *render* module produces the ++${TCAR_SCRIPTS_LANG_LC}/Xhtml-single/index.html+ file, using the same +directory of the configuration file as base directory. + +---------------------------------------------------------------------- +[centos-artwork.png] +render-from = "${TCAR_BASEDIR}/Artworks/Brands/Types/Webenv/centos.org/{centos,artwork}.svgz" +formats = "xpm pdf jpg tif" +heights = "16 20 22 24 32 36 38 40 48 64 72 78 96 112 124 128 148 164 196 200 512" +fgcolors = "000000 ffffff" +bgcolors = "ffffff-0" +command = "/usr/bin/convert +append" +---------------------------------------------------------------------- + +{asciidoc-br} + +When the *render* module reads this configuration file, it takes the ++centos.svgz+ and +artwork.svgz+ files as source to produce the ++centos.png+ and +artwork.png+ files considering the first value in +the list of heights, background, foreground colors specified in the +configuration file. Then, it combines the results horizontally to +create the +centos-artwork.png+ file. Later, the +centos-artwork.png+ +file is converted to produce one image file for each image format +specified in the configuration file. At this point, all the process +repeats again but for the next height and color values in the list. + +{asciidoc-br} + +---------------------------------------------------------------------- +[syslinux-splash.png] +render-from = "${TCAR_BASEDIR}/Artworks/Themes/Models/Distro/5/Syslinux/syslinux-splash.svgz" +brand = "${TCAR_BASEDIR}/Artworks/Brands/Types/Default/Images/ffffff/ffffff-0/48/centos.png:x48+20+232" +brand = "${TCAR_BASEDIR}/Artworks/Brands/Types/Numbers/Images/ffffff/ffffff-0/96/5.png:x96+300+184" + +[syslinux-splash.lss] +render-from = "syslinux-splash.png" +render-type = "palette" +palette-gpl = "colors.gpl" +---------------------------------------------------------------------- + +{asciidoc-br} + +When the *render* module reads this configuration file, + +---------------------------------------------------------------------- +[screenshot.png] +render-type = "svg" +render-from = "${TCAR_BASEDIR}/Artworks/Themes/Models/Distro/5/Gdm/screenshot.svgz" +render-flow = "base" +brand = "${TCAR_BASEDIR}/Artworks/Brands/Symbols/Default/Images/ffffff/ffffff-0/16/centos.png:x16+5+5" + +[800x600.tar.gz] +render-type = "archive" +render-from = "${TCAR_BASEDIR}/Artworks/Themes/Motifs/${MOTIF}/Backgrounds/Images/800x600-final.png:background.png" +render-from = "${TCAR_BASEDIR}/Artworks/Themes/Models/Distro/5/Gdm/GdmGreeterTheme.desktop" +render-from = "${TCAR_BASEDIR}/Artworks/Themes/Models/Distro/5/Gdm/GdmGreeterTheme.xml" +render-from = "${TCAR_BASEDIR}/Artworks/Themes/Models/Distro/5/Gdm/icon-language.png" +render-from = "${TCAR_BASEDIR}/Artworks/Themes/Models/Distro/5/Gdm/icon-reboot.png" +render-from = "${TCAR_BASEDIR}/Artworks/Themes/Models/Distro/5/Gdm/icon-session.png" +render-from = "${TCAR_BASEDIR}/Artworks/Themes/Models/Distro/5/Gdm/icon-shutdown.png" +render-from = "screenshot.png" +command = "/bin/tar -czf" + +[1360x768.tar.gz] +render-type = "archive" +render-from = "${TCAR_BASEDIR}/Artworks/Themes/Motifs/${MOTIF}/Backgrounds/Images/1360x768-final.png:background.png" +render-from = "${TCAR_BASEDIR}/Artworks/Themes/Models/Distro/5/Gdm/GdmGreeterTheme.desktop" +render-from = "${TCAR_BASEDIR}/Artworks/Themes/Models/Distro/5/Gdm/GdmGreeterTheme.xml" +render-from = "${TCAR_BASEDIR}/Artworks/Themes/Models/Distro/5/Gdm/icon-language.png" +render-from = "${TCAR_BASEDIR}/Artworks/Themes/Models/Distro/5/Gdm/icon-reboot.png" +render-from = "${TCAR_BASEDIR}/Artworks/Themes/Models/Distro/5/Gdm/icon-session.png" +render-from = "${TCAR_BASEDIR}/Artworks/Themes/Models/Distro/5/Gdm/icon-shutdown.png" +render-from = "screenshot.png" +command = "/bin/tar --remove-files -czf" +---------------------------------------------------------------------- + +{asciidoc-br} + +When the *render* module reads this configuration file, + +Bugs +---- + +The *render* module has some issues I would like you to be aware of. +Mainly, to see if you could help me find better solutions for them ;) + +Rendering Images With Reduced Number Of Colors +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +The process implemented to reduce image colors through GIMP's palettes +involves too much user intervention compared with ImageMagick's +--colors option that reduces image colors instantly without user +intervention. Nevertheless, the procedure of reducing color through +GIMP's palettes provides more quality to final images than +ImageMagic's --colors option does. Also, using GIMP's palettes let us +create LSS images from PNG images using the same exact information we +used to reduce colors on PNG images. This is very important in order +to have the same result in both image types. Because of these reasons +I prefer GIMP's palettes procedure against others methods like it is +the case of ImageMagick's for producing images with reduced number of +colors. + +Rendering PDF Files From Localized Docbook Files +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Even it is possible to produce PDF files from Docbook files using +current applications inside CentOS-5, there are some production issues +when we use localized docbook files as source to produce localized PDF +files that made me not to implement them as part of *centos-art.sh* +script by now. + +- When using the XML(DocBook)->XML(FO)->PDF transformation chain, the + result produced by _docbook-style-xsl-1.69.1-5.1_ and + _passivetex-1.25-5.1.1_ doesn't render heading boxes very well on + page's top and page's bottom. The text put inside these boxes seem + to have not enough space in their respective areas. + +- Tried using _dblatex-0.2.8-2.el5_ but didn't work for localized docbook files + (i.e., those who has the +lang="lang"+ string in their root + element). If you just remove the language specification string it + just work. We need the language specification in order for internal + document strings like +Abstract+ and +Table of contents+ to be + automatically translated. When the language specific attribute is + present in the root element, dblatex outputs the following: ++ +---------------------------------------------------------------------- +Build the listings... +XSLT stylesheets DocBook - LaTeX 2e (0.2.8) +=================================================== +Processing Revision History +Build 2912-corporate.docbook.pdf +This is pdfeTeX, Version 3.141592-1.21a-2.2 (Web2C 7.5.4) +entering extended mode +pdflatex failed +/usr/share/texmf/tex/latex/dblatex/docbook.sty:160: No counter 'chapter' defined. +/usr/share/texmf/tex/latex/dblatex/docbook.sty:160: leading text: \newfloat{example}{htb}{loe}[chapter] +/usr/share/texmf/tex/latex/dblatex/docbook.sty:164: No counter 'chapter' defined. +/usr/share/texmf/tex/latex/dblatex/docbook.sty:164: leading text: \newfloat{dbequation}{htb}{loe}[chapter] +2912-corporate.docbook_tmp.tex:62: Illegal parameter number in definition of \@the@H@page. +2912-corporate.docbook_tmp.tex:62: leading text: \maketitle +2912-corporate.docbook_tmp.tex:62: Illegal parameter number in definition of \@the@H@page. +2912-corporate.docbook_tmp.tex:62: leading text: \maketitle +2912-corporate.docbook_tmp.tex:62: Illegal parameter number in definition of \@the@H@page. +2912-corporate.docbook_tmp.tex:62: leading text: \maketitle +Error: pdflatex compilation failed +---------------------------------------------------------------------- + +Reporting Bugs +-------------- +Report bugs on the *automation* category of *centos-artwork* project +at the https://centos.org.cu/bugs/[The CentOS Bugs] website. + +Author +------ +Written by mailto:al@centos.org.cu[Alain Reguera Delgado], 2009-2013 + +Copyright +--------- + +Copyright (C) 2009-2013 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. + +// vim: set syntax=asciidoc: diff --git a/Documentation/Manpages/render.conf b/Documentation/Manpages/render.conf index 34f73b8..13a0f90 100644 --- a/Documentation/Manpages/render.conf +++ b/Documentation/Manpages/render.conf @@ -83,3 +83,10 @@ render-from = "prepare.asciidoc" locale-from = "Locales/${TCAR_SCRIPT_LANG_LC}/prepare.po" formats = "xhtml manpage" mansect = "1" +[render] +render-type = "asciidoc" +render-flow = "manpage" +render-from = "render.asciidoc" +locale-from = "Locales/${TCAR_SCRIPT_LANG_LC}/render.asciidoc.po" +formats = "xhtml manpage" +mansect = "1" diff --git a/Scripts/Modules/Render/Locales/es_ES/render.sh.po b/Scripts/Modules/Render/Locales/es_ES/render.sh.po new file mode 100644 index 0000000..ea0585c --- /dev/null +++ b/Scripts/Modules/Render/Locales/es_ES/render.sh.po @@ -0,0 +1,20 @@ +msgid "" +msgstr "" +"Project-Id-Version: render.sh 0.6\n" +"Report-Msgid-Bugs-To: centos-l10n-es@centos.org.cu\n" +"POT-Creation-Date: 2013-10-07 15:12-0400\n" +"PO-Revision-Date: 2013-10-07 15:12-0400\n" +"Last-Translator: Localization SIG \n" +"Language-Team: Spanish\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: Automation/Modules/Render/render_setRenderType.sh:76 +msgid "hasn't render-type set in." +msgstr "no tiene el ajuste render-type." + +#: Automation/Modules/Render/render_setRenderType.sh:81 +msgid "hasn't render-from set in." +msgstr "no tiene el ajuste render-from." diff --git a/Scripts/Modules/Render/Modules/Directories/directories.sh b/Scripts/Modules/Render/Modules/Directories/directories.sh new file mode 100755 index 0000000..8f132c9 --- /dev/null +++ b/Scripts/Modules/Render/Modules/Directories/directories.sh @@ -0,0 +1,51 @@ +#!/bin/bash +###################################################################### +# +# directories.sh -- This module initializes processing of +# configuration files when the argument provided in the command-line +# points to a directory. +# +# Written by: +# * Alain Reguera Delgado , 2009-2013 +# +# Copyright (C) 2009-2013 The CentOS Artwork SIG +# +# 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. +# +###################################################################### + +function directories { + + local DIRECTORY=$(tcar_checkRepoDirSource "${1}") + + local CONFIGURATION_FILES=$(tcar_getFilesList ${DIRECTORY} \ + --pattern=".+/.+\.conf$" --type='f') + + local CONFIGURATION_SYMLINKS=$(tcar_getFilesList ${DIRECTORY} \ + --pattern=".+/.+\.conf$" --type='l') + + local CONFIGURATIONS="${CONFIGURATION_FILES} ${CONFIGURATION_SYMLINKS}" + + # Verify existence of configuration files. Take care that + # tcar_getFilesList might return empty values sometimes (e.g., + # when no file is found). + tcar_checkFiles -e "${CONFIGURATIONS}" + + # Process configuration file, one by one. + for CONFIGURATION in ${CONFIGURATIONS};do + tcar_setModuleEnvironment -m 'files' -t 'sibling' -g "${CONFIGURATION}" + done + +} diff --git a/Scripts/Modules/Render/Modules/Files/Modules/Archive/archive.sh b/Scripts/Modules/Render/Modules/Files/Modules/Archive/archive.sh new file mode 100755 index 0000000..68e67dd --- /dev/null +++ b/Scripts/Modules/Render/Modules/Files/Modules/Archive/archive.sh @@ -0,0 +1,51 @@ +#!/bin/bash +###################################################################### +# +# archive.sh -- This file standardizes file archiving inside the +# centos-art.sh script. +# +# Written by: +# * Alain Reguera Delgado , 2009-2013 +# +# Copyright (C) 2009-2013 The CentOS Artwork SIG +# +# 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. +# +###################################################################### + +function archive { + + tcar_printMessage "${RENDER_TARGET}" --as-creating-line + + COMMAND=$(tcar_getConfigValue "${CONFIGURATION}" "${SECTION}" "command") + if [[ -z ${COMMAND} ]];then + COMMAND="/bin/tar --remove-files -czf" + fi + + # Let file names to be changed before compressing them. + for SOURCE in ${SOURCES[*]};do + FILE_LH=$(echo ${SOURCE} | gawk -F: '{ print $1 }') + tcar_checkFiles -ef ${FILE_LH} + FILE_RH=$(echo ${SOURCE} | gawk -F: '{ print $2 }') + cp ${FILE_LH} ${TCAR_SCRIPT_TEMPDIR}/${FILE_RH} + done + + pushd ${TCAR_SCRIPT_TEMPDIR} > /dev/null + + ${COMMAND} ${RENDER_TARGET} * + + popd > /dev/null + +} diff --git a/Scripts/Modules/Render/Modules/Files/Modules/Asciidoc/Modules/Article/article.sh b/Scripts/Modules/Render/Modules/Files/Modules/Asciidoc/Modules/Article/article.sh new file mode 100755 index 0000000..cddf9e5 --- /dev/null +++ b/Scripts/Modules/Render/Modules/Files/Modules/Asciidoc/Modules/Article/article.sh @@ -0,0 +1,32 @@ +#!/bin/bash +###################################################################### +# +# article.sh -- This module produces docbook documents using article +# document type. +# +# Written by: +# * Alain Reguera Delgado , 2009-2013 +# +# Copyright (C) 2009-2013 The CentOS Artwork SIG +# +# 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. +# +###################################################################### + +function article { + + asciidoc_setFormatsRendition + +} diff --git a/Scripts/Modules/Render/Modules/Files/Modules/Asciidoc/Modules/Book/book.sh b/Scripts/Modules/Render/Modules/Files/Modules/Asciidoc/Modules/Book/book.sh new file mode 100755 index 0000000..50feb02 --- /dev/null +++ b/Scripts/Modules/Render/Modules/Files/Modules/Asciidoc/Modules/Book/book.sh @@ -0,0 +1,32 @@ +#!/bin/bash +###################################################################### +# +# book.sh -- This module produces docbook documents using book +# document type. +# +# Written by: +# * Alain Reguera Delgado , 2009-2013 +# +# Copyright (C) 2009-2013 The CentOS Artwork SIG +# +# 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. +# +###################################################################### + +function book { + + asciidoc_setFormatsRendition + +} diff --git a/Scripts/Modules/Render/Modules/Files/Modules/Asciidoc/Modules/Manpage/manpage.sh b/Scripts/Modules/Render/Modules/Files/Modules/Asciidoc/Modules/Manpage/manpage.sh new file mode 100755 index 0000000..7aab945 --- /dev/null +++ b/Scripts/Modules/Render/Modules/Files/Modules/Asciidoc/Modules/Manpage/manpage.sh @@ -0,0 +1,66 @@ +#!/bin/bash +###################################################################### +# +# manpage.sh -- This module produces docbook documents using manpage +# document type. +# +# Written by: +# * Alain Reguera Delgado , 2009-2013 +# +# Copyright (C) 2009-2013 The CentOS Artwork SIG +# +# 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. +# +###################################################################### + +function manpage { + + local MANSECT=$(tcar_getConfigValue "${CONFIGURATION}" "${SECTION}" "mansect") + + tcar_checkFiles -m '[1-9]' "${MANSECT}" + + # xml2po (gnome-doc-utils-0.8.0-2.fc6) bug? For some reason xml2po + # is not adding the lang attribute to refentry tag when it + # produces manpage document types. This make intrinsic docbook + # construction like Name and Synopsis to be rendered without + # localization. This doesn't happens with article and book + # document types. + sed -i -r "s///" ${TARGET_INSTANCES[${COUNTER}]} + + for FORMAT in ${FORMATS};do + + tcar_checkFiles -m '(xhtml|manpage)' "${FORMAT}" + + case ${FORMAT} in + + 'xhtml' ) + local HTML_TARGET="$(dirname ${RENDER_TARGET})/htmlman${MANSECT}/$(basename ${RENDER_TARGET}).${MANSECT}.html" + asciidoc_setXhtmlRendition "${HTML_TARGET}" + ;; + + 'manpage' ) + local MAN_TARGET="$(dirname ${RENDER_TARGET})/man${MANSECT}/$(basename ${RENDER_TARGET}).${MANSECT}" + if [[ ! -d $(dirname ${MAN_TARGET}) ]];then + mkdir -p $(dirname ${MAN_TARGET}) + fi + tcar_printMessage "${MAN_TARGET}" --as-creating-line + /usr/bin/xsltproc -o ${MAN_TARGET} --nonet \ + ${DOCBOOK_XSL}/docbook2manpage.xsl ${TARGET_INSTANCES[${COUNTER}]} + ;; + esac + + done + +} diff --git a/Scripts/Modules/Render/Modules/Files/Modules/Asciidoc/asciidoc.sh b/Scripts/Modules/Render/Modules/Files/Modules/Asciidoc/asciidoc.sh new file mode 100755 index 0000000..3ebfbf7 --- /dev/null +++ b/Scripts/Modules/Render/Modules/Files/Modules/Asciidoc/asciidoc.sh @@ -0,0 +1,53 @@ +#!/bin/bash +###################################################################### +# +# asciidoc.sh -- This function standardizes rendition of asciidoc +# files inside the centos-art.sh script. +# +# Written by: +# * Alain Reguera Delgado , 2009-2013 +# +# Copyright (C) 2009-2013 The CentOS Artwork SIG +# +# 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. +# +###################################################################### + +function asciidoc { + + local DOCBOOK_VER="1.69.1" + local DOCBOOK_XSL="${TCAR_BASEDIR}/Artworks/Webenv/Docbook/${DOCBOOK_VER}/Xsl" + local DOCBOOK_CSS="${TCAR_BASEDIR}/Artworks/Webenv/Docbook/${DOCBOOK_VER}/Css" + + RENDER_FLOW=$(tcar_getConfigValue "${CONFIGURATION}" "${SECTION}" 'render-flow') + if [[ -z ${RENDER_FLOW} ]];then + RENDER_FLOW="article" + fi + tcar_checkFiles -m '^(article|book|manpage)$' "${RENDER_FLOW}" + + FORMATS=$(tcar_getConfigValue "${CONFIGURATION}" "${SECTION}" 'formats') + if [[ -z ${FORMATS} ]];then + FORMATS='xhtml' + fi + + RELEASE=$(tcar_getConfigValue "${CONFIGURATION}" "${SECTION}" 'release') + if [[ -z ${RELEASE} ]];then + RELEASE=$(cut -f3 -d' ' /etc/redhat-release) + fi + MAJOR_RELEASE=$(echo ${RELEASE} | cut -d. -f1) + + asciidoc_setBaseRendition + +} diff --git a/Scripts/Modules/Render/Modules/Files/Modules/Asciidoc/asciidoc_setBaseRendition.sh b/Scripts/Modules/Render/Modules/Files/Modules/Asciidoc/asciidoc_setBaseRendition.sh new file mode 100755 index 0000000..abe81bc --- /dev/null +++ b/Scripts/Modules/Render/Modules/Files/Modules/Asciidoc/asciidoc_setBaseRendition.sh @@ -0,0 +1,55 @@ +#!/bin/bash +###################################################################### +# +# asciidoc_setBaseRendition.sh -- This function standardizes +# transformation of asciidoc files into docbook files. +# +# Written by: +# * Alain Reguera Delgado , 2009-2013 +# +# Copyright (C) 2009-2013 The CentOS Artwork SIG +# +# 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. +# +###################################################################### + +function asciidoc_setBaseRendition { + + local COUNTER=0 + + local -a SOURCE_INSTANCES + local -a TARGET_INSTANCES + + while [[ ${COUNTER} -lt ${#SOURCES[*]} ]];do + + render_setInstances "${SOURCES[${COUNTER}]}" 'asciidoc' 'docbook' + + /usr/bin/asciidoc --backend="docbook" --doctype="${RENDER_FLOW}" \ + --out-file="${SOURCE_INSTANCES[${COUNTER}]}" ${SOURCES[${COUNTER}]} + + render_setLocalizedXml "${SOURCE_INSTANCES[${COUNTER}]}" "${TARGET_INSTANCES[${COUNTER}]}" + + tcar_setTranslationMarkers ${TARGET_INSTANCES[${COUNTER}]} + + tcar_setModuleEnvironment -m "${RENDER_FLOW}" -t "child" + + COUNTER=$(( ${COUNTER} + 1 )) + + done + + unset TARGET_INSTANCES + unset SOURCE_INSTANCES + +} diff --git a/Scripts/Modules/Render/Modules/Files/Modules/Asciidoc/asciidoc_setBaseRenditionCommand.sh b/Scripts/Modules/Render/Modules/Files/Modules/Asciidoc/asciidoc_setBaseRenditionCommand.sh new file mode 100755 index 0000000..5c71014 --- /dev/null +++ b/Scripts/Modules/Render/Modules/Files/Modules/Asciidoc/asciidoc_setBaseRenditionCommand.sh @@ -0,0 +1,36 @@ +#!/bin/bash +###################################################################### +# +# asciidoc_setBaseRenditionCommand.sh -- This function standardizes +# the way Asciidoc files are rendered inside the centos-art.sh +# script. +# +# Written by: +# * Alain Reguera Delgado , 2009-2013 +# +# Copyright (C) 2009-2013 The CentOS Artwork SIG +# +# 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. +# +###################################################################### + +function asciidoc_setBaseRenditionCommand { + + tcar_checkFiles -m '^(article|book|manpage)$' ${RENDER_TYPE} + + asciidoc --backend='docbook' --doctype="${RENDER_TYPE}" \ + --out-file="${RENDER_TARGET}" + +} diff --git a/Scripts/Modules/Render/Modules/Files/Modules/Asciidoc/asciidoc_setFormatsRendition.sh b/Scripts/Modules/Render/Modules/Files/Modules/Asciidoc/asciidoc_setFormatsRendition.sh new file mode 100755 index 0000000..6a8371c --- /dev/null +++ b/Scripts/Modules/Render/Modules/Files/Modules/Asciidoc/asciidoc_setFormatsRendition.sh @@ -0,0 +1,45 @@ +#!/bin/bash +###################################################################### +# +# asciidoc_setFormatsRendition.sh -- This function standardizes the +# rendition formats supported by asciidoc module. +# +# Written by: +# * Alain Reguera Delgado , 2009-2013 +# +# Copyright (C) 2009-2013 The CentOS Artwork SIG +# +# 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. +# +###################################################################### + +function asciidoc_setFormatsRendition { + + for FORMAT in ${FORMATS};do + + case ${FORMAT} in + + 'xhtml' ) + asciidoc_setXhtmlRendition "${RENDER_TARGET}" + ;; + + * ) + tcar_printMessage "`gettext "The format you specified isn't supported, yet."`" --as-error-line + ;; + esac + + done + +} diff --git a/Scripts/Modules/Render/Modules/Files/Modules/Asciidoc/asciidoc_setXhtmlRendition.sh b/Scripts/Modules/Render/Modules/Files/Modules/Asciidoc/asciidoc_setXhtmlRendition.sh new file mode 100755 index 0000000..bbe02e8 --- /dev/null +++ b/Scripts/Modules/Render/Modules/Files/Modules/Asciidoc/asciidoc_setXhtmlRendition.sh @@ -0,0 +1,73 @@ +#!/bin/bash +###################################################################### +# +# asciidoc_setXhtmlRendition.sh -- This function standardizes the way +# docbook files are transformed in XHTML format. +# +# Written by: +# * Alain Reguera Delgado , 2009-2013 +# +# Copyright (C) 2009-2013 The CentOS Artwork SIG +# +# 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. +# +###################################################################### + +function asciidoc_setXhtmlRendition { + + local LOCATION=$(tcar_checkRepoDirSource "${1}") + + RENDER_PAGES=$(tcar_getConfigValue "${CONFIGURATION}" "${SECTION}" "render-page") + if [[ -z ${RENDER_PAGES} ]];then + RENDER_PAGES='single' + fi + tcar_checkFiles -m '^(single-notoc|single|chunks)$' "${RENDER_PAGES}" + + IMAGES_FROM=$(tcar_getConfigValue "${CONFIGURATION}" "${SECTION}" "images-from") + if [[ -z ${IMAGES_FROM} ]];then + IMAGES_FROM="${TCAR_BASEDIR}/Artworks/Icons/Webenv/Final" + fi + + STYLES_FROM=$(tcar_getConfigValue "${CONFIGURATION}" "${SECTION}" "styles-from") + if [[ -z ${STYLES_FROM} ]];then + STYLES_FROM="${TCAR_BASEDIR}/Artworks/Webenv/Docbook/1.69.1/Css" + fi + + # When producing chunks, take into consideration that both single + # and chunks share images produced in the root location. If we + # create another level of directories to store chunks, that would + # make impossible to use one unique image path for both single and + # chunks from one unique asciidoc document. So, to reuse image + # files, produce both chunks and single XHTML output in the same + # directory. + if [[ ${RENDER_PAGES} == 'chunks' ]];then + LOCATION="$(dirname ${LOCATION})/" + fi + + if [[ ! -d $(dirname ${LOCATION}) ]];then + mkdir -p $(dirname ${LOCATION}) + fi + + ln -sfn ${IMAGES_FROM} $(dirname ${LOCATION})/Images + ln -sfn ${STYLES_FROM} $(dirname ${LOCATION})/Css + + tcar_printMessage "${LOCATION}" --as-creating-line + + for RENDER_PAGE in ${RENDER_PAGES};do + /usr/bin/xsltproc -o ${LOCATION} --nonet \ + ${DOCBOOK_XSL}/docbook2xhtml-${RENDER_PAGE}.xsl ${TARGET_INSTANCES[${COUNTER}]} + done + +} diff --git a/Scripts/Modules/Render/Modules/Files/Modules/Compress/compress.sh b/Scripts/Modules/Render/Modules/Files/Modules/Compress/compress.sh new file mode 100755 index 0000000..f164d80 --- /dev/null +++ b/Scripts/Modules/Render/Modules/Files/Modules/Compress/compress.sh @@ -0,0 +1,41 @@ +#!/bin/bash +###################################################################### +# +# compress.sh -- This file standardize file compression inside the +# centos-art.sh script. +# +# Written by: +# * Alain Reguera Delgado , 2009-2013 +# +# Copyright (C) 2009-2013 The CentOS Artwork SIG +# +# 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. +# +###################################################################### + +function compress { + + tcar_printMessage "${RENDER_TARGET}" --as-creating-line + + COMMAND=$(tcar_getConfigValue "${CONFIGURATION}" "${SECTION}" "command") + if [[ -z ${COMMAND} ]];then + COMMAND="/bin/gzip" + fi + + tcar_checkFiles -ef ${SOURCES[*]} + + ${COMMAND} ${SOURCES[*]} + +} diff --git a/Scripts/Modules/Render/Modules/Files/Modules/Images/images.sh b/Scripts/Modules/Render/Modules/Files/Modules/Images/images.sh new file mode 100755 index 0000000..ba0e463 --- /dev/null +++ b/Scripts/Modules/Render/Modules/Files/Modules/Images/images.sh @@ -0,0 +1,49 @@ +#!/bin/bash +###################################################################### +# +# images.sh -- This module standardizes production of image files +# from other image files. There is no intermediate process here. +# The image or images provided as value to render-from variable are +# used to create the image specified in the section line using the +# command specified in the command variable, without any +# intermediate process. +# +# Written by: +# * Alain Reguera Delgado , 2009-2013 +# +# Copyright (C) 2009-2013 The CentOS Artwork SIG +# +# 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. +# +###################################################################### + +function images { + + tcar_checkFiles -i "image" ${SOURCES[*]} + + COMMAND=$(tcar_getConfigValue "${CONFIGURATION}" "${SECTION}" "command") + if [[ -z ${COMMAND} ]];then + COMMAND="/usr/bin/images -append" + fi + + if [[ ! -d $(dirname ${RENDER_TARGET}) ]];then + mkdir -p $(dirname ${RENDER_TARGET}) + fi + + tcar_printMessage "${RENDER_TARGET}" --as-creating-line + + eval ${COMMAND} ${SOURCES[*]} ${RENDER_TARGET} + +} diff --git a/Scripts/Modules/Render/Modules/Files/Modules/Palette/palette.sh b/Scripts/Modules/Render/Modules/Files/Modules/Palette/palette.sh new file mode 100755 index 0000000..20fb82c --- /dev/null +++ b/Scripts/Modules/Render/Modules/Files/Modules/Palette/palette.sh @@ -0,0 +1,104 @@ +#!/bin/bash +###################################################################### +# +# palette.sh -- This function standardizes the way palette of colors +# are applied to image files in order to produce images with +# specific number of colors. +# +# Written by: +# * Alain Reguera Delgado , 2009-2013 +# +# Copyright (C) 2009-2013 The CentOS Artwork SIG +# +# 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. +# +###################################################################### + +function palette { + + local FILENAME=$(tcar_getTemporalFile "$(echo ${SOURCES[0]} \ + | sed -r 's/\.[[:alpha:]]+$//')") + + local LOGS=${RENDER_TARGET}.log + + # Define absolute path to GPL palette. This file is the reference + # taken to set the max number of colors the final image will be + # produced for. + local PALETTE_GPL=$(tcar_getConfigValue ${CONFIGURATION} ${SECTION} 'palette-gpl') + tcar_checkFiles -ef ${PALETTE_GPL} + + local PALETTE_GPL_COLORS=$(palette_getColors "${PALETTE_GPL}") + + # Define absolute path to PPM palette. The PPM palette is built + # from source palette (PALETTE_GPL) and provides the color + # information understood by `ppmremap', the program used to + # produce images in a specific amount of colors. + local PALETTE_PPM=$(tcar_getTemporalFile 'palette.ppm') + + # Verify format of colors returned in the list. + palette_checkColorFormats "${PALETTE_GPL_COLORS}" + + # Create image in Netpbm superformat (PNM). The PNM image file is + # created from the PNG image rendered previously as centos-art + # base-rendition output. The PNM image is an intermediate format + # used to manipulate images through Netpbm tools. + pngtopnm -verbose \ + < ${SOURCES[0]} 2>${LOGS} > ${FILENAME}.pnm + + # Create PPM palette using GPL palette. + palette_convertGplToPpm + + # Reduce colors as specified in PPM palette. Here we use the PPM + # palette to enforce the color position in the image index and the + # Floyd-Steinberg dithering in order to improve color reduction. + pnmremap -verbose -mapfile=${PALETTE_PPM} -floyd \ + < ${FILENAME}.pnm 2>>${LOGS} > ${FILENAME}.ppm + + # Print action message. + tcar_printMessage "${RENDER_TARGET}" --as-creating-line + + if [[ ${RENDER_TARGET} =~ '\.lss$' ]];then + + # Define the HEX palette. The HEX palette is built from source + # palette (PALETTE_GPL) and provides the color information in + # the format understood by `ppmtolss16', the program used to + # produce images in LSS16 format. The HEX palette stores just + # one line with the color information as described in isolinux + # documentation (i.e #RRGGBB=0 #RRGGBB=1 ... [all values in + # the same line]) + local PALETTE_HEX=$(tcar_getTemporalFile "palette.hex") + + # Create HEX palette using GPL palette. + palette_convertGplToHex + + # Create LSS16 image. + ppmtolss16 $(cat ${PALETTE_HEX}) \ + < ${FILENAME}.ppm 2>>${LOGS} > ${RENDER_TARGET} + + # Create PPM image indexed to 16 colors. Also the colormap + # used in the LSS16 image is saved on ${FILE}.log; this is + # useful to verify the correct order of colors in the image + # index. + lss16toppm -map \ + < ${RENDER_TARGET} 2>>${LOGS} > ${RENDER_TARGET}.ppm + + else + + # Create final file. + /usr/bin/convert ${FILENAME}.ppm ${RENDER_TARGET} + + fi + +} diff --git a/Scripts/Modules/Render/Modules/Files/Modules/Palette/palette_checkColorFormat.sh b/Scripts/Modules/Render/Modules/Files/Modules/Palette/palette_checkColorFormat.sh new file mode 100755 index 0000000..b11b16c --- /dev/null +++ b/Scripts/Modules/Render/Modules/Files/Modules/Palette/palette_checkColorFormat.sh @@ -0,0 +1,39 @@ +#!/bin/bash +###################################################################### +# +# palette_checkColorFormats.sh -- This function verifies formats of +# colors (i.e., the way color information is specified). +# +# Written by: +# * Alain Reguera Delgado , 2009-2013 +# +# Copyright (C) 2009-2013 The CentOS Artwork SIG +# +# 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. +# +###################################################################### + +function palette_checkColorFormats { + + local COLOR='' + local PALETTE_COLORS=${1} + + # Loop through colors and perform format verification as specified + # by pattern. + for COLOR in ${PALETTE_COLORS};do + tcar_checkFiles -m '^#[0-9a-f]{6}$' "${COLOR}" + done + +} diff --git a/Scripts/Modules/Render/Modules/Files/Modules/Palette/palette_convertGplToHex.sh b/Scripts/Modules/Render/Modules/Files/Modules/Palette/palette_convertGplToHex.sh new file mode 100755 index 0000000..d78a00a --- /dev/null +++ b/Scripts/Modules/Render/Modules/Files/Modules/Palette/palette_convertGplToHex.sh @@ -0,0 +1,37 @@ +#!/bin/bash +###################################################################### +# +# palette_convertGplToHex.sh -- This function takes one palette +# produced by GIMP (e.g., syslinux.gpl) as input and outputs the +# list of hexadecimal colors and their respective index position the +# `pnmtolss16' program needs (e.g., #RRGGBB=0 #RRGGBB=1 ... [all +# values in the same line]). +# +# Written by: +# * Alain Reguera Delgado , 2009-2013 +# +# Copyright (C) 2009-2013 The CentOS Artwork SIG +# +# 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. +# +###################################################################### + +function palette_convertGplToHex { + + # Create list of colors to be processed by `pnmtolss16'. + echo "${PALETTE_GPL_COLORS}" | nl | gawk '{ printf "%s=%d ", $2, $1 - 1 }' \ + > ${PALETTE_HEX} + +} diff --git a/Scripts/Modules/Render/Modules/Files/Modules/Palette/palette_convertGplToPpm.sh b/Scripts/Modules/Render/Modules/Files/Modules/Palette/palette_convertGplToPpm.sh new file mode 100755 index 0000000..0619f68 --- /dev/null +++ b/Scripts/Modules/Render/Modules/Files/Modules/Palette/palette_convertGplToPpm.sh @@ -0,0 +1,52 @@ +#!/bin/bash +###################################################################### +# +# palette_convertGplToPpm.sh -- This function takes one palette +# produced by Gimp (e.g., syslinux.gpl) as input and outputs one PPM +# file based on it (e.g., syslinux.ppm). +# +# Written by: +# * Alain Reguera Delgado , 2009-2013 +# +# Copyright (C) 2009-2013 The CentOS Artwork SIG +# +# 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. +# +###################################################################### + +function palette_convertGplToPpm { + + local -a FILES + local COUNT=0 + + # Create temporal images (of 1x1 pixel each) to store each color + # retrieved from Gimp's palette. + for COLOR in ${PALETTE_GPL_COLORS};do + FILES[${COUNT}]=$(tcar_getTemporalFile ${COUNT}.ppm) + ppmmake ${COLOR} 1 1 > ${FILES[${COUNT}]} + COUNT=$((${COUNT} + 1)) + done + + # Concatenate each temporal image from left to right to create the + # PPM file. + pnmcat -lr ${FILES[*]} > ${PALETTE_PPM} + + # Remove temporal images used to build the PPM palette file. + rm ${FILES[*]} + + # Verify PPM palette existence. + tcar_checkFiles -ef "${PALETTE_PPM}" + +} diff --git a/Scripts/Modules/Render/Modules/Files/Modules/Palette/palette_getColors.sh b/Scripts/Modules/Render/Modules/Files/Modules/Palette/palette_getColors.sh new file mode 100755 index 0000000..4363cdd --- /dev/null +++ b/Scripts/Modules/Render/Modules/Files/Modules/Palette/palette_getColors.sh @@ -0,0 +1,63 @@ +#!/bin/bash +###################################################################### +# +# palette_getColors.sh -- This function takes one palette produced +# by Gimp (e.g., syslinux.gpl) as input and outputs a list of colors +# in #rrggbb format set in the fourth column of it. +# +# Written by: +# * Alain Reguera Delgado , 2009-2013 +# +# Copyright (C) 2009-2013 The CentOS Artwork SIG +# +# 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. +# +###################################################################### + +function palette_getColors { + + local COLOR='' + local PALETTE_COLORS='' + local PALETTE=${1} + + if [[ -f ${PALETTE} ]];then + + # Retrieve the fourth column from GPL palette. The fourth + # column of a GPL palette contains the palette commentary + # field. The palette commentary field can be anything, but for + # the sake of our own convenience we use it to store the color + # value in hexadecimal format (e.g., rrggbb). Notice that you + # can put your comments from the fifth column on, using an + # space as field separator. + PALETTE_COLORS=$(sed -r '1,/^#/d' ${PALETTE} \ + | gawk '{ printf "%s\n", $4 }') + + else + + # Redefine default background color using The CentOS Project + # default color then. + PALETTE_COLORS='#204c8d' + + fi + + # Be sure all color information be output in the #rrggbb format. + for COLOR in ${PALETTE_COLORS};do + if [[ ! ${COLOR} =~ '^#' ]];then + COLOR="#${COLOR}" + fi + echo "${COLOR}" + done + +} diff --git a/Scripts/Modules/Render/Modules/Files/Modules/Svg/Modules/Base/base.sh b/Scripts/Modules/Render/Modules/Files/Modules/Svg/Modules/Base/base.sh new file mode 100755 index 0000000..e1614b8 --- /dev/null +++ b/Scripts/Modules/Render/Modules/Files/Modules/Svg/Modules/Base/base.sh @@ -0,0 +1,33 @@ +#!/bin/bash +###################################################################### +# +# base.sh -- This function standardizes base rendition of PNG files. +# Base rendition consists on producing one PNG image for each SVG +# file provided as source. +# +# Written by: +# * Alain Reguera Delgado , 2009-2013 +# +# Copyright (C) 2009-2013 The CentOS Artwork SIG +# +# 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. +# +###################################################################### + +function base { + + svg_setBaseRendition + +} diff --git a/Scripts/Modules/Render/Modules/Files/Modules/Svg/Modules/Extended/extended.sh b/Scripts/Modules/Render/Modules/Files/Modules/Svg/Modules/Extended/extended.sh new file mode 100755 index 0000000..8f7636f --- /dev/null +++ b/Scripts/Modules/Render/Modules/Files/Modules/Svg/Modules/Extended/extended.sh @@ -0,0 +1,90 @@ +#!/bin/bash +###################################################################### +# +# extended.sh -- This function standardize extended production of +# PNG files from SVG files. The extended production consists on +# producing PNG images in in different formats, heights, foreground +# colors and background colors. +# +# Written by: +# * Alain Reguera Delgado , 2009-2013 +# +# Copyright (C) 2009-2013 The CentOS Artwork SIG +# +# 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. +# +###################################################################### + +function extended { + + # Retrieve formats you want to produce the image for. This + # variable contains one or more image format supported by + # ImageMagick. For example, `xpm', `jpg', 'tiff', etc. + local FORMATS=$(tcar_getConfigValue "${CONFIGURATION}" "${SECTION}" "formats") + if [[ -z ${FORMATS} ]];then + FORMATS="png" + fi + + # Retrieve heights you want to produce the image for. This + # variable contains one or more numerical values. For example, + # `16', `24', `32', etc. + local HEIGHTS=$(tcar_getConfigValue "${CONFIGURATION}" "${SECTION}" "heights") + if [[ -z ${HEIGHTS} ]];then + HEIGHTS="16 20 22 24 26 32 36 38 40 48 52 64 72 78 96 112 124 128 148 164 196 200 512" + fi + + # Retrieve foreground colors you want to produce the image for. + # This variable contains one or more color number in hexadecimal + # format. For example, `000000', `ffffff', etc. + local FGCOLORS=$(tcar_getConfigValue "${CONFIGURATION}" "${SECTION}" "fgcolors") + if [[ -z ${FGCOLORS} ]];then + FGCOLORS="000000" + fi + + # Retrieve background colors you want to produce the image for. + # This variable contains one or more color number in hexadecimal + # format with opacity information included. Opacity is specified + # between 0.0 and 1.0 where 0.0 is full transparency and 1.0 full + # opacity. For example, the following values are accepted: + # `000000-0', `ffffff-1', etc. + local BGCOLORS=$(tcar_getConfigValue "${CONFIGURATION}" "${SECTION}" "bgcolors") + if [[ -z ${BGCOLORS} ]];then + BGCOLORS="ffffff-0 ffffff-1" + fi + + for BGCOLOR in ${BGCOLORS};do + + # Verify value passed as background color. + tcar_checkFiles -m '^[a-fA-F0-9]{6}-(0|1)$' ${BGCOLOR} + + for FGCOLOR in ${FGCOLORS};do + + # Verify value passed as foreground color. + tcar_checkFiles -m '^[a-fA-F0-9]{3,6}$' ${FGCOLOR} + + for HEIGHT in ${HEIGHTS};do + + # Verify value passed as height. + tcar_checkFiles -m '^[[:digit:]]+$' ${HEIGHT} + + # Do base rendition actions. + extended_setBaseRendition + + done + done + done + + +} diff --git a/Scripts/Modules/Render/Modules/Files/Modules/Svg/Modules/Extended/extended_setBaseRendition.sh b/Scripts/Modules/Render/Modules/Files/Modules/Svg/Modules/Extended/extended_setBaseRendition.sh new file mode 100755 index 0000000..2097b22 --- /dev/null +++ b/Scripts/Modules/Render/Modules/Files/Modules/Svg/Modules/Extended/extended_setBaseRendition.sh @@ -0,0 +1,49 @@ +#!/bin/bash +###################################################################### +# +# extended_setBaseRendition.sh -- This function standardize base +# rendition tasks needed to perform the extended production of PNG +# files from SVG files. +# +# Written by: +# * Alain Reguera Delgado , 2009-2013 +# +# Copyright (C) 2009-2013 The CentOS Artwork SIG +# +# 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. +# +###################################################################### + +function extended_setBaseRendition { + + local RENDER_TARGET=$(dirname ${RENDER_TARGET})/${BGCOLOR}/${FGCOLOR}/${HEIGHT}/$(basename ${RENDER_TARGET}) + + svg_setBaseRendition + + # Create path for different image formats creation using PNG image + # extension as reference. + RENDER_TARGET=$(echo ${RENDER_TARGET} | sed -r "s/\.png$//") + + # Convert images from PNG to those formats specified in the + # configuration file. + for FORMAT in ${FORMATS};do + if [[ ${FORMAT} =~ 'png' ]];then + continue + fi + tcar_printMessage "${RENDER_TARGET}.${FORMAT}" --as-creating-line + convert ${RENDER_TARGET}.png ${RENDER_TARGET}.${FORMAT} + done + +} diff --git a/Scripts/Modules/Render/Modules/Files/Modules/Svg/Modules/Media/media.sh b/Scripts/Modules/Render/Modules/Files/Modules/Svg/Modules/Media/media.sh new file mode 100755 index 0000000..50fe025 --- /dev/null +++ b/Scripts/Modules/Render/Modules/Files/Modules/Svg/Modules/Media/media.sh @@ -0,0 +1,91 @@ +#!/bin/bash +###################################################################### +# +# media.sh -- This module produces artwork for installation media. +# +# Written by: +# * Alain Reguera Delgado , 2009-2013 +# +# Copyright (C) 2009-2013 The CentOS Artwork SIG +# +# 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. +# +###################################################################### + +function media { + + local MEDIA_TYPE=$(tcar_getConfigValue "${CONFIGURATION}" "${SECTION}" 'media-type') + tcar_checkFiles -m '^[[:alnum:]]+$' "${MEDIA_TYPE}" + + local MEDIA_NUMBER=$(tcar_getConfigValue "${CONFIGURATION}" "${SECTION}" 'media-number') + tcar_checkFiles -m '^[[:digit:]]+$' "${MEDIA_NUMBER}" + + local MEDIA_RELEASE=$(tcar_getConfigValue "${CONFIGURATION}" "${SECTION}" 'media-release') + tcar_checkFiles -m '^[[:digit:].]+$' "${MEDIA_RELEASE}" + + local MEDIA_ARCH=$(tcar_getConfigValue "${CONFIGURATION}" "${SECTION}" 'media-arch') + tcar_checkFiles -m '^[[:alnum:]_-]+$' "${MEDIA_ARCH}" + + local MEDIA_SOURCES=${SOURCES[*]} + local MEDIA_SOURCES_MAX=${#SOURCES[*]} + + local MEDIA_NUMBER_CURRENT=1 + + while [[ ${MEDIA_NUMBER_CURRENT} -le ${MEDIA_NUMBER} ]];do + + local COUNTER=0 + local -a SOURCE_INSTANCES + local -a TARGET_INSTANCES + + for RELEASE in ${MEDIA_RELEASE};do + + for ARCH in ${MEDIA_ARCH};do + + for MEDIA_SOURCE in ${MEDIA_SOURCES};do + + render_setInstances "${MEDIA_SOURCE}" '(svgz|svg)' 'svg' + + render_setLocalizedXml "${MEDIA_SOURCE}" "${TARGET_INSTANCES[${COUNTER}]}" + + sed -i -r -e "s/=MEDIUM=/${MEDIA_TYPE}/g" \ + -e "s/=CURRENT=/${MEDIA_NUMBER_CURRENT}/g" \ + -e "s/=RELEASE=/${RELEASE}/g" \ + -e "s/=ARCH=/${ARCH}/g" \ + -e "s/=LAST=/${MEDIA_NUMBER}/g" \ + ${TARGET_INSTANCES[${COUNTER}]} + + RENDER_TARGET="$(dirname ${RENDER_TARGET})/${SECTION}-${RELEASE}-${ARCH}-${MEDIA_NUMBER_CURRENT}of${MEDIA_NUMBER}.png" + + SOURCES[${COUNTER}]=${TARGET_INSTANCES[${COUNTER}]} + + svg_setBaseRendition + + rm ${TARGET_INSTANCES[${COUNTER}]} + + if [[ ${MEDIA_SOURCES_MAX} -gt 1 ]];then + COUNTER=$(( ${COUNTER} + 1 )) + fi + + done + + done + + done + + MEDIA_NUMBER_CURRENT=$(( ${MEDIA_NUMBER_CURRENT} + 1 )) + + done + +} diff --git a/Scripts/Modules/Render/Modules/Files/Modules/Svg/svg.sh b/Scripts/Modules/Render/Modules/Files/Modules/Svg/svg.sh new file mode 100755 index 0000000..96e0e36 --- /dev/null +++ b/Scripts/Modules/Render/Modules/Files/Modules/Svg/svg.sh @@ -0,0 +1,62 @@ +#!/bin/bash +###################################################################### +# +# svg.sh -- This file initializes the svg module. The svg module +# takes SVG fies as input and produces different kind of images +# based on either simple or advanced rendition flow. +# +# Written by: +# * Alain Reguera Delgado , 2009-2013 +# +# Copyright (C) 2009-2013 The CentOS Artwork SIG +# +# 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. +# +###################################################################### + +function svg { + + # Define command used to create final images from instance images. + COMMAND=$(tcar_getConfigValue "${CONFIGURATION}" "${SECTION}" "command") + if [[ -z ${COMMAND} ]];then + if [[ ${#SOURCES[*]} -gt 1 ]];then + COMMAND="/usr/bin/convert +append" + else + COMMAND="/bin/cp" + fi + fi + + RENDER_FLOWS=$(tcar_getConfigValue "${CONFIGURATION}" "${SECTION}" "render-flow") + if [[ -z ${RENDER_FLOWS} ]];then + RENDER_FLOWS='base' + fi + + BRANDS=$(tcar_getConfigValue "${CONFIGURATION}" "${SECTION}" "brand") + + COMMENT=$(tcar_getConfigValue "${CONFIGURATION}" "${SECTION}" "comment") + + EXPORTID=$(tcar_getConfigValue "${CONFIGURATION}" "${SECTION}" "export-id") + + RELEASE=$(tcar_getConfigValue "${CONFIGURATION}" "${SECTION}" 'release') + if [[ -z ${RELEASE} ]];then + RELEASE=$(cut -f3 -d' ' /etc/redhat-release) + fi + MAJOR_RELEASE=$(echo ${RELEASE} | cut -d. -f1) + + for RENDER_FLOW in ${RENDER_FLOWS} ;do + tcar_setModuleEnvironment -m "${RENDER_FLOW}" -t "child" + done + +} diff --git a/Scripts/Modules/Render/Modules/Files/Modules/Svg/svg_checkModelAbsref.sh b/Scripts/Modules/Render/Modules/Files/Modules/Svg/svg_checkModelAbsref.sh new file mode 100755 index 0000000..a41cee8 --- /dev/null +++ b/Scripts/Modules/Render/Modules/Files/Modules/Svg/svg_checkModelAbsref.sh @@ -0,0 +1,139 @@ +#!/bin/bash +###################################################################### +# +# svg_checkModelAbsref.sh -- This function retrieves absolute pahts +# from source files and checks their existence. +# +# In order for design templates to point different artistic motifs, +# design templates make use of external files which point to +# specific artistic motif background images. If such external files +# don't exist, try to create the background image required by +# cropping a higher background image (e.g., 2048x1536.png). If this +# isn't possible either, then create the background image using a +# plain color and crop from it then. We can't go on without the +# required background information. +# +# Written by: +# * Alain Reguera Delgado , 2009-2013 +# +# Copyright (C) 2009-2013 The CentOS Artwork SIG +# +# 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. +# +###################################################################### + +function svg_checkModelAbsref { + + local FILE='' + local BG_DST_FILES='' + local BG_DST_FILE='' + local BG_DST_FILE_WIDTH='' + local BG_DST_FILE_HEIGHT='' + local BG_SRC_FILE='' + local BG_SRC_FILE_COLOR='' + local BG_SRC_FILE_WIDTH='' + local BG_SRC_FILE_HEIGHT='' + + # Define absolute path to the translated instance of design model. + FILE="${1}" + + # Verify existence of file we need to retrieve absolute paths from. + tcar_checkFiles -ef "${FILE}" + + # Retrieve absolute paths from file. + BG_DST_FILES=$(egrep "(sodipodi:absref|xlink:href)=\"${HOME}.+" ${FILE} \ + | sed -r "s,.+=\"(${HOME}.+\.png)\".*,\1," | sort | uniq) + + # Verify absolute paths retrieved from file. + for BG_DST_FILE in ${BG_DST_FILES};do + + # Verify parent directory of absolute files retrieved from + # file. This is required to prevent the construction of paths + # to locations that don't exist. For example, when including + # background images in SVG files, it is possible that the path + # information inside SVG files get outdated temporally. If in + # that exact moment, you try to render the SVG file it won't + # be possible to create the image used for cropping because + # the path build from the location inside SVG file doesn't + # exist. In this case, centos-art.sh script will end up with + # `file ... doesn't exist' errors. + tcar_checkFiles -d "$(dirname ${BG_DST_FILE})" + + if [[ ! -a ${BG_DST_FILE} ]];then + + # Define the source background file, the image file will + # crop when no specific background information be + # available for using. Generally, this is the most + # reusable background file inside the artistic motifs + # (e.g,. the `2048x1536.png' file). We can use this + # image file to create almost all artworks inside The + # CentOS Distribution visual manifestation when + # resolution-specific backgrounds don't exist. + BG_SRC_FILE=$(echo ${BG_DST_FILE} \ + | sed -r "s!(.+)/[[:digit:]]+x[[:digit:]]+!\1/2048x1536!") + + # Verify existence of source background file. If the file + # doesn't exist create it using The CentOS Project default + # background color information, as specified in its + # corporate identity manual. + if [[ ! -f ${BG_SRC_FILE} ]];then + + # Define plain color that will be used as background. + BG_SRC_FILE_COLOR='#204C8D' + + # Define width for the source background file the + # required background information is cropped from. + BG_SRC_FILE_WIDTH=$(echo ${BG_SRC_FILE} \ + | sed -r 's!.+/([[:digit:]]+)x[[:digit:]]+\.png!\1!') + + # Define height for the source background file the + # required background information is cropped from. + BG_SRC_FILE_HEIGHT=$(echo ${BG_SRC_FILE} \ + | sed -r 's!.+/[[:digit:]]+x([[:digit:]]+)\.png!\1!') + + # Print action message. + tcar_printMessage "${BG_SRC_FILE} (${BG_SRC_FILE_COLOR})" --as-creating-line + + # Create the source background file. + ppmmake -quiet ${BG_SRC_FILE_COLOR} \ + ${BG_SRC_FILE_WIDTH} ${BG_SRC_FILE_HEIGHT} \ + | pnmtopng > ${BG_SRC_FILE} + + fi + + # Define the width of the required background information. + BG_DST_FILE_WIDTH=$(echo ${BG_DST_FILE} \ + | sed -r 's!.+/([[:digit:]]+)x[[:digit:]]+\.png!\1!') + + # Define the height of the required background information. + BG_DST_FILE_HEIGHT=$(echo ${BG_DST_FILE} \ + | sed -r 's!.+/[[:digit:]]+x([[:digit:]]+)\.png!\1!') + + # Print action message. + tcar_printMessage "${BG_SRC_FILE} (${BG_DST_FILE_WIDTH}x${BG_DST_FILE_HEIGHT})" --as-cropping-line + + # Create required background information. + convert -quiet \ + -crop ${BG_DST_FILE_WIDTH}x${BG_DST_FILE_HEIGHT}+0+0 \ + ${BG_SRC_FILE} ${BG_DST_FILE} + + # Verify required background information. + tcar_checkFiles -ef ${BG_DST_FILE} + + fi + + done + +} diff --git a/Scripts/Modules/Render/Modules/Files/Modules/Svg/svg_checkModelExportId.sh b/Scripts/Modules/Render/Modules/Files/Modules/Svg/svg_checkModelExportId.sh new file mode 100755 index 0000000..bd80a4b --- /dev/null +++ b/Scripts/Modules/Render/Modules/Files/Modules/Svg/svg_checkModelExportId.sh @@ -0,0 +1,45 @@ +#!/bin/bash +###################################################################### +# +# svg_checkModelExportId.sh -- This function standardizes the export +# id used inside svg files and the way of verify them. +# +# Written by: +# * Alain Reguera Delgado , 2009-2013 +# +# Copyright (C) 2009-2013 The CentOS Artwork SIG +# +# 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. +# +###################################################################### + +function svg_checkModelExportId { + + local INSTANCE="${1}" + local EXPORTID="${2}" + + # Verify instance. + tcar_checkFiles -ef ${INSTANCE} + + # Verify export id. + tcar_checkFiles -m '[[:alnum:]]+' ${EXPORTID} + + # Check export id inside design templates. + grep "id=\"${EXPORTID}\"" ${INSTANCE} > /dev/null + if [[ $? -gt 0 ]];then + tcar_printMessage "`gettext "The design model doesn't contain the export-id you specified."`" --as-error-line + fi + +} diff --git a/Scripts/Modules/Render/Modules/Files/Modules/Svg/svg_setBaseRendition.sh b/Scripts/Modules/Render/Modules/Files/Modules/Svg/svg_setBaseRendition.sh new file mode 100755 index 0000000..f41cd71 --- /dev/null +++ b/Scripts/Modules/Render/Modules/Files/Modules/Svg/svg_setBaseRendition.sh @@ -0,0 +1,92 @@ +#!/bin/bash +###################################################################### +# +# svg_setBaseRendition.sh -- This function standardizes the base +# rendition tasks needed to produce PNG files from SVG files. +# +# Written by: +# * Alain Reguera Delgado , 2009-2013 +# +# Copyright (C) 2009-2013 The CentOS Artwork SIG +# +# 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. +# +###################################################################### + +function svg_setBaseRendition { + + local COUNTER=0 + + local -a SOURCE_INSTANCES + local -a TARGET_INSTANCES + local -a INKSCAPE_OPTIONS + + while [[ ${COUNTER} -lt ${#SOURCES[*]} ]];do + + render_setInstances "${SOURCES[${COUNTER}]}" '(svgz|svg)' 'png' + + render_setLocalizedXml "${SOURCES[${COUNTER}]}" "${SOURCE_INSTANCES[${COUNTER}]}" + + tcar_setTranslationMarkers ${SOURCE_INSTANCES[${COUNTER}]} + + svg_checkModelAbsref "${SOURCE_INSTANCES[${COUNTER}]}" + + svg_setBaseRenditionOptions + + svg_setBaseRenditionCommand + + COUNTER=$(( ${COUNTER} + 1 )) + + done + + # Verify existence of output directory. + if [[ ! -d $(dirname ${RENDER_TARGET}) ]];then + mkdir -p $(dirname ${RENDER_TARGET}) + fi + + tcar_printMessage "${RENDER_TARGET}" --as-creating-line + + # Apply command to PNG images produced from design models to + # construct the final PNG image. + if [[ -n ${COMMAND} ]];then + ${COMMAND} ${TARGET_INSTANCES[*]} ${RENDER_TARGET} + fi + + # Apply branding images to final PNG image. + if [[ -n ${BRANDS} ]];then + svg_setBrandInformation + fi + + # Apply comment to final PNG image. + if [[ -n ${COMMENT} ]];then + /usr/bin/mogrify -comment "${COMMENT}" ${RENDER_TARGET} + fi + + # Remove instances to save disk space. There is no need to have + # unused files inside the temporal directory. They would be + # consuming space unnecessarily. Moreover, there is a remote + # chance of name collapsing (because the huge number of files that + # would be in place and the week random string we are putting in + # front of files) which may produce unexpected results. + rm ${TARGET_INSTANCES[*]} ${SOURCE_INSTANCES[*]} + + # Unset array variables and their counter to prevent undesired + # concatenations. + unset SOURCE_INSTANCES + unset TARGET_INSTANCES + unset INKSCAPE_OPTIONS + unset COUNTER + +} diff --git a/Scripts/Modules/Render/Modules/Files/Modules/Svg/svg_setBaseRenditionCommand.sh b/Scripts/Modules/Render/Modules/Files/Modules/Svg/svg_setBaseRenditionCommand.sh new file mode 100755 index 0000000..10ded06 --- /dev/null +++ b/Scripts/Modules/Render/Modules/Files/Modules/Svg/svg_setBaseRenditionCommand.sh @@ -0,0 +1,32 @@ +#!/bin/bash +###################################################################### +# +# svg_setBaseRenditionCommand.sh -- This function standardizes the +# way SVG files are produced inside the centos-art.sh script. +# +# Written by: +# * Alain Reguera Delgado , 2009-2013 +# +# Copyright (C) 2009-2013 The CentOS Artwork SIG +# +# 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. +# +###################################################################### + +function svg_setBaseRenditionCommand { + + /usr/bin/inkscape ${SOURCE_INSTANCES[${COUNTER}]} ${INKSCAPE_OPTIONS[${COUNTER}]} > /dev/null + +} diff --git a/Scripts/Modules/Render/Modules/Files/Modules/Svg/svg_setBaseRenditionOptions.sh b/Scripts/Modules/Render/Modules/Files/Modules/Svg/svg_setBaseRenditionOptions.sh new file mode 100755 index 0000000..a7efeb2 --- /dev/null +++ b/Scripts/Modules/Render/Modules/Files/Modules/Svg/svg_setBaseRenditionOptions.sh @@ -0,0 +1,52 @@ +#!/bin/bash +###################################################################### +# +# svg_setBaseRenditionOptions.sh -- This function standardizes the +# way base rendition options are set. +# +# Written by: +# * Alain Reguera Delgado , 2009-2013 +# +# Copyright (C) 2009-2013 The CentOS Artwork SIG +# +# 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. +# +###################################################################### + +function svg_setBaseRenditionOptions { + + if [[ ! -z ${FGCOLOR} ]] && [[ ${FGCOLOR} != '000000' ]];then + sed -i -r "s/((fill|stroke):#)000000/\1${FGCOLOR}/g" ${SOURCE_INSTANCES[${COUNTER}]} + fi + + INKSCAPE_OPTIONS[${COUNTER}]="--export-png=${TARGET_INSTANCES[${COUNTER}]}" + + if [[ -z ${EXPORTID} ]];then + INKSCAPE_OPTIONS[${COUNTER}]="${INKSCAPE_OPTIONS[${COUNTER}]} --export-area-drawing " + else + svg_checkModelExportId "${SOURCE_INSTANCES[${COUNTER}]}" "${EXPORTID}" + INKSCAPE_OPTIONS[${COUNTER}]="${INKSCAPE_OPTIONS[${COUNTER}]} --export-id=${EXPORTID} " + fi + + if [[ ! -z ${BGCOLOR} ]];then + INKSCAPE_OPTIONS[${COUNTER}]="${INKSCAPE_OPTIONS[${COUNTER}]} --export-background=$(echo ${BGCOLOR} | cut -d'-' -f1) " + INKSCAPE_OPTIONS[${COUNTER}]="${INKSCAPE_OPTIONS[${COUNTER}]} --export-background-opacity=$(echo ${BGCOLOR} | cut -d'-' -f2) " + fi + + if [[ ! -z ${HEIGHT} ]];then + INKSCAPE_OPTIONS[${COUNTER}]="${INKSCAPE_OPTIONS[${COUNTER}]} --export-height=${HEIGHT} " + fi + +} diff --git a/Scripts/Modules/Render/Modules/Files/Modules/Svg/svg_setBrandInformation.sh b/Scripts/Modules/Render/Modules/Files/Modules/Svg/svg_setBrandInformation.sh new file mode 100755 index 0000000..1f420ce --- /dev/null +++ b/Scripts/Modules/Render/Modules/Files/Modules/Svg/svg_setBrandInformation.sh @@ -0,0 +1,42 @@ +#!/bin/bash +###################################################################### +# +# svg_setBrandInformation.sh -- This function takes brand +# information from configuration files, processes it, and apply it +# on final PNG image file. +# +# Written by: +# * Alain Reguera Delgado , 2009-2013 +# +# Copyright (C) 2009-2013 The CentOS Artwork SIG +# +# 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. +# +###################################################################### + +function svg_setBrandInformation { + + for BRAND in ${BRANDS};do + + local FILENAME=$(echo ${BRAND} | cut -d: -f1) + local GEOMETRY=$(echo ${BRAND} | cut -d: -f2) + + tcar_checkFiles -ef ${FILENAME} + + /usr/bin/composite -geometry ${GEOMETRY} ${FILENAME} ${RENDER_TARGET} ${RENDER_TARGET} + + done + +} diff --git a/Scripts/Modules/Render/Modules/Files/Modules/Symlink/symlink.sh b/Scripts/Modules/Render/Modules/Files/Modules/Symlink/symlink.sh new file mode 100755 index 0000000..1accc29 --- /dev/null +++ b/Scripts/Modules/Render/Modules/Files/Modules/Symlink/symlink.sh @@ -0,0 +1,63 @@ +#!/bin/bash +###################################################################### +# +# symlink.sh -- This function provides an interface for ln command. +# It mainly exists to creates symbolic links based on information +# set in configuration files that have symlink as value to +# render-type option. In these sections, the render-from and +# link-target options are used to specify the link locations. The +# link-options option might be used to pass additional options to ln +# command. +# +# Written by: +# * Alain Reguera Delgado , 2009-2013 +# +# Copyright (C) 2009-2013 The CentOS Artwork SIG +# +# 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. +# +###################################################################### + +function symlink { + + # Define absolute path to command used to create symbolic links. + local LN=/bin/ln + + # Retrieve command options (values are not required here). Just + # grant you are always creating symbolic links. + local LN_OPTIONS=$(tcar_getConfigValue "${CONFIGURATION}" "${SECTION}" "link-options") + LN_OPTIONS="-si ${LN_OPTIONS}" + + # Retrieve link source. This is the file you want to link. This + # file is generally inside the repository. + local LN_SOURCE=${RENDER_FROM} + tcar_checkFiles -ef ${LN_SOURCE} + + # Retrieve link target. This is the link you want to create. This + # link may be inside or outside the repository. The value passed + # to this value must be a directory because it is concatenated + # with the section name to build the final path where link will be + # created. + local LN_TARGET=$(tcar_getConfigValue "${CONFIGURATION}" "${SECTION}" "link-target") + tcar_checkFiles -ed ${LN_TARGET} + LN_TARGET=${LN_TARGET}/${SECTION} + + # Print action message. + tcar_printMessage "${LN_TARGET}" --as-creating-line + + # Create link interactively. + ${LN} ${LN_OPTIONS} ${LN_SOURCE} ${LN_TARGET} + +} diff --git a/Scripts/Modules/Render/Modules/Files/files.sh b/Scripts/Modules/Render/Modules/Files/files.sh new file mode 100755 index 0000000..14a5f29 --- /dev/null +++ b/Scripts/Modules/Render/Modules/Files/files.sh @@ -0,0 +1,133 @@ +#!/bin/bash +###################################################################### +# +# files.sh -- This module initializes processing of configuration +# files when the argument passed in the command-line points to a +# regular file or symbolic link. +# +# Written by: +# * Alain Reguera Delgado , 2009-2013 +# +# Copyright (C) 2009-2013 The CentOS Artwork SIG +# +# 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. +# +###################################################################### + +function files { + + local CONFIGURATION=$(tcar_checkRepoDirSource "${1}") + + local -a SECTIONS + local SECTION='' + + # Define motif-specific environment variables, based on + # configuration file path. These variables might save + # configuration file writers from typing motif-specific + # information when they produce motif-specific content. These + # variables will be empty if the configuration file isn't inside + # a motif-specific directory structure. + local MOTIF=$(tcar_getPathComponent ${CONFIGURATION} --motif) + local MOTIF_NAME=$(tcar_getPathComponent ${CONFIGURATION} --motif-name) + local MOTIF_VERSION=$(tcar_getPathComponent ${CONFIGURATION} --motif-version) + + # Use arrays to store section names. This make possible to make + # use of post-rendition and last-rendition concepts. Otherwise it + # would be difficult to predict information about sections inside + # deeper environments. + for SECTION in $(tcar_getConfigSectionNames "${CONFIGURATION}" \ + | egrep ${TCAR_FLAG_FILTER});do + SECTIONS[++${#SECTIONS[*]}]="${SECTION}" + done + + # Verify the configuration file has one section entry at least. + if [[ ${#SECTIONS[*]} -eq 0 ]];then + tcar_printMessage "`eval_gettext "No section definition was found in \\\$CONFIGURATION."`" --as-error-line + fi + + local COUNTER=0 + + while [[ ${COUNTER} -lt ${#SECTIONS[*]} ]];do + + # Initialize array variables locally. + local -a TRANSLATIONS + local -a SOURCES + + SECTION=${SECTIONS[${COUNTER}]} + + if [[ ${SECTION} =~ "^/" ]];then + RENDER_TARGET=${SECTION} + else + RENDER_TARGET=$(dirname ${CONFIGURATION})/Final/${TCAR_SCRIPT_LANG_LC}/${SECTION} + fi + + RENDER_TYPE=$(tcar_getConfigValue "${CONFIGURATION}" "${SECTION}" "render-type") + if [[ -z ${RENDER_TYPE} ]];then + tcar_printMessage "${CONFIGURATION} `gettext "hasn't render-type set in."`" --as-error-line + fi + + RENDER_FROM=$(tcar_getConfigValue "${CONFIGURATION}" "${SECTION}" "render-from") + if [[ -z ${RENDER_TYPE} ]];then + tcar_printMessage "${CONFIGURATION} `gettext "hasn't render-from set in."`" --as-error-line + fi + + for SOURCE in ${RENDER_FROM};do + if [[ ${SOURCE} =~ "^/" ]];then + SOURCES[++${#SOURCES[*]}]=${SOURCE} + else + SOURCES[++${#SOURCES[*]}]=$(dirname ${CONFIGURATION})/${SOURCE} + fi + done + + if [[ -z ${RENDER_TYPE} ]];then + RENDER_TYPE=$(echo ${SOURCES[0]} | sed -r 's/.+\.([[:alpha:]]+)$/\1/') + fi + + LOCALE_FROM=$(tcar_getConfigValue "${CONFIGURATION}" "${SECTION}" "locale-from") + if [[ -z ${LOCALE_FROM} ]] || [[ ${LOCALE_FROM} == 'no-locale' ]] ;then + RENDER_FLAG_NO_LOCALE='true' + RENDER_TARGET=$(echo ${RENDER_TARGET} | sed "s,${TCAR_SCRIPT_LANG_LC}/,,") + else + for TRANSLATION in ${LOCALE_FROM};do + if [[ ${TRANSLATION} =~ "^/" ]];then + TRANSLATIONS[++${#TRANSLATIONS[*]}]=${TRANSLATION} + else + TRANSLATIONS[++${#TRANSLATIONS[*]}]=$(dirname ${CONFIGURATION})/${TRANSLATION} + fi + done + fi + + # Execute module for processing type-specific files. + tcar_setModuleEnvironment -m "${RENDER_TYPE}" -t "child" + + # Increment section's counter. + COUNTER=$(( ${COUNTER} + 1 )) + + # Reset array variable to avoid undesired concatenations + # between sections blocks. + unset TRANSLATIONS + unset SOURCES + + done + + # Reset array variables and their counters to avoid undesired + # concatenations between configuration files. + unset COUNTER + unset SECTIONS + + # Tuneup final files. + tcar_setModuleEnvironment -m 'tuneup' -t 'parent' -g $(dirname ${RENDER_TARGET}) + +} diff --git a/Scripts/Modules/Render/render.sh b/Scripts/Modules/Render/render.sh new file mode 100755 index 0000000..e9edb20 --- /dev/null +++ b/Scripts/Modules/Render/render.sh @@ -0,0 +1,56 @@ +#!/bin/bash +###################################################################### +# +# render.sh -- This function standardizes the way source files are +# processed inside the working copy. +# +# Written by: +# * Alain Reguera Delgado , 2009-2013 +# +# Copyright (C) 2009-2013 The CentOS Artwork SIG +# +# 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. +# +###################################################################### + +function render { + + # Define flag to control whether final content is produced inside + # locale directories or not. + LOACLE_FLAG_NO_LOCALE='false' + + # Interpret arguments and options passed through command-line. + render_getOptions + + # Define action value. We use non-option arguments to define the + # action value (ACTIONVAL) variable. + for ARGUMENT in ${TCAR_MODULE_ARGUMENT};do + + # Sanitate non-option arguments to be sure they match the + # directory conventions established by centos-art.sh script + # against source directory locations in the working copy. + local ARGUMENT=$(tcar_checkRepoDirSource ${ARGUMENT}) + + if [[ -d ${ARGUMENT} ]];then + tcar_setModuleEnvironment -m 'directories' -t 'child' -g ${ARGUMENT} + elif [[ -f ${ARGUMENT} ]] && [[ ${ARGUMENT} =~ '\.conf$' ]];then + tcar_setModuleEnvironment -m 'files' -t 'child' -g ${ARGUMENT} + else + tcar_printMessage "${ARGUMENT} `gettext "isn't supported."`" --as-error-line + fi + + done + +} diff --git a/Scripts/Modules/Render/render_getOptions.sh b/Scripts/Modules/Render/render_getOptions.sh new file mode 100755 index 0000000..9b7977f --- /dev/null +++ b/Scripts/Modules/Render/render_getOptions.sh @@ -0,0 +1,80 @@ +#!/bin/bash +###################################################################### +# +# render_getOptions.sh -- This function interprets option arguments +# passed to `render' module and calls actions accordingly. +# +# Written by: +# * Alain Reguera Delagdo , 2009-2013 +# +# Copyright (C) 2009-2013 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. +# +###################################################################### + +function render_getOptions { + + # Define short options we want to support. + local ARGSS="h::,v,f:" + + # Define long options we want to support. + local ARGSL="help::,version,filter:,no-locale" + + # Redefine arguments using getopt(1) command parser. + tcar_setModuleArguments + + # Reset positional parameters on this function, using output + # produced from (getopt) arguments parser. + eval set -- "${TCAR_MODULE_ARGUMENT}" + + # Look for options passed through command-line. + while true; do + case "${1}" in + + -h | --help ) + tcar_printHelp "${2}" + ;; + + -v | --version ) + tcar_printVersion "${TCAR_MODULE_NAME}" + ;; + + -f | --filter ) + TCAR_FLAG_FILTER="${2:-${TCAR_FLAG_FILTER}}" + shift 2 + ;; + + -- ) + # Remove the `--' argument from the list of arguments + # in order for processing non-option arguments + # correctly. At this point all option arguments have + # been processed already but the `--' argument still + # remains to mark ending of option arguments and + # beginning of non-option arguments. The `--' argument + # needs to be removed here in order to avoid + # centos-art.sh script to process it as a path inside + # the repository, which obviously is not. + shift 1 + break + ;; + esac + done + + # Redefine arguments using current positional parameters. Only + # paths should remain as arguments, at this point. + TCAR_MODULE_ARGUMENT="${@}" + +} diff --git a/Scripts/Modules/Render/render_setInstances.sh b/Scripts/Modules/Render/render_setInstances.sh new file mode 100755 index 0000000..83ad63c --- /dev/null +++ b/Scripts/Modules/Render/render_setInstances.sh @@ -0,0 +1,47 @@ +#!/bin/bash +###################################################################### +# +# render_setInstances.sh -- This function standardizes definition of +# file instances inside the render module. +# +# Written by: +# * Alain Reguera Delgado , 2009-2013 +# +# Copyright (C) 2009-2013 The CentOS Artwork SIG +# +# 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. +# +###################################################################### + +function render_setInstances { + + local FILE=${1} + local FILE_EXTENSION_PATTERN=${2:-asciidoc} + local FILE_EXTENSION_REPLACE=${3:-docbook} + + # Verify existence and extension of design model. + tcar_checkFiles -ef -m "\.${FILE_EXTENSION_PATTERN}$" "${FILE}" + + # Define file base name. + local FILE_BASENAME=$(basename ${FILE}) + + # Define absolute path to source instance. + SOURCE_INSTANCES[${COUNTER}]=$(tcar_getTemporalFile ${FILE_BASENAME}) + + # Define absolute path to target instance. + TARGET_INSTANCES[${COUNTER}]=$(tcar_getTemporalFile ${FILE_BASENAME} \ + | sed -r "s/\.${FILE_EXTENSION_PATTERN}$/.${FILE_EXTENSION_REPLACE}/") + +} diff --git a/Scripts/Modules/Render/render_setLocalizedXml.sh b/Scripts/Modules/Render/render_setLocalizedXml.sh new file mode 100755 index 0000000..8420583 --- /dev/null +++ b/Scripts/Modules/Render/render_setLocalizedXml.sh @@ -0,0 +1,101 @@ +#!/bin/bash +###################################################################### +# +# render_setLocalizedXml.sh -- This function standardizes the way +# (.po) translation files are applied to XML files (e.g., .docbook, +# .svg) in order to produce their related translated instances, used +# to expand translation markers and produce the final file format in +# different languages. Assuming no translation file exists, an +# untranslated instance is taken from the design model and created +# (i.e., just a copy) from it. Using a design model instance +# (translated or not) is required in order to expand translation +# markers safely. +# +# Written by: +# * Alain Reguera Delgado , 2009-2013 +# +# Copyright (C) 2009-2013 The CentOS Artwork SIG +# +# 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. +# +###################################################################### + +function render_setLocalizedXml { + + # Define absolute path to source instance. + local SOURCE="${1}" + + # Define absolute path to target instance. + local TARGET="${2}" + + # Verify source instance and the no-locale flag. When source + # instance already exists, don't create a new file for it. + # Instead, link it using a symbolic link. Be careful, such + # behavior only applies when the source file has no locale. + # Otherwise, the source file needs to go through the translation + # process inevitably. + if [[ -f ${SOURCE} ]];then + if [[ ${SOURCE} =~ "^${TCAR_SCRIPT_TEMPDIR}" ]];then + if [[ ${RENDER_FLAG_NO_LOCALE} == 'true' ]];then + tcar_checkFiles -i 'text/xml' ${SOURCE} + /bin/ln -s ${SOURCE} ${TARGET} + return + fi + elif [[ ${RENDER_FLAG_NO_LOCALE} == 'true' ]];then + tcar_printFile ${SOURCE} > ${TARGET} + tcar_checkFiles -i 'text/xml' ${TARGET} + return + fi + fi + + # Verify existence of translation files. + tcar_checkFiles -efi 'text/x-po' ${TRANSLATIONS[*]} + + # Define absolute path to translation instance. + local TRANSLATION=$(tcar_getTemporalFile "messages.po") + + # Combine available translations file into one translation + # instance. + msgcat -u -o ${TRANSLATION} ${TRANSLATIONS[*]} + + # Verify existence of final location. In case it doesn't exist, + # create it. + if [[ $(dirname ${RENDER_TARGET}) ]];then + mkdir -p $(dirname ${RENDER_TARGET}) + fi + + # Move to final location before processing source file in order + # for relative calls (e.g., image files) inside the source files + # can be found by xml2po and no warning be printed from it. + pushd $(dirname ${RENDER_TARGET}) > /dev/null + + # Create the localized instance from design model. + tcar_printFile ${SOURCE} | xml2po -a -l ${TCAR_SCRIPT_LANG_LC} \ + -p ${TRANSLATION} -o ${TARGET} - + + # Remove .xml2po.mo temporal file. + if [[ -f ./.xml2po.mo ]];then + rm ./.xml2po.mo + fi + + # Return to previous location. + popd > /dev/null + + # Remove instance created to store template translations. + if [[ -f ${TRANSLATION} ]];then + rm ${TRANSLATION} + fi + +}