Blame Manuals/en/Texinfo/Repository/trunk/Translations.texi

4c79b5
@subsection Goals
4c79b5
4c79b5
The @file{trunk/Translations} directory exists to:
4c79b5
4c79b5
@itemize
4c79b5
@item Organize translation files.
4c79b5
@item Organize translation templates used to produce translation files.
4c79b5
@end itemize
4c79b5
4c79b5
@subsection Description
4c79b5
4c79b5
When you create artwork for CentOS distribution you find that some
4c79b5
artworks need to be created for different major releases of CentOS
4c79b5
distribution and inside each major release they need to be created for
4c79b5
different locales. To get an approximate idea of how many files we are
4c79b5
talking about, consider the followig approximate statistic:
4c79b5
4c79b5
@itemize
4c79b5
@item Inside CentOS distribution, there are around 30 images to
4c79b5
rebrand.@footnote{This number is an approximate value and may change.
4c79b5
It is mainly based on CentOS 5 rebranding experience.}
4c79b5
4c79b5
@item There are near to four major releases of CentOS distribution to
4c79b5
rebrand in parallel development.@footnote{This value was taken from
4c79b5
CentOS release schema.} 
4c79b5
4c79b5
@item Each CentOS distribution in parallel development supports more
4c79b5
than two hundreds locales.@footnote{This value was taken from the
4c79b5
@command{locale -a} command's output.}
4c79b5
@end itemize
4c79b5
4c79b5
In order to aliviate maintainance of artwork production for such
4c79b5
environment, we divided artwork production in three production lines:
4c79b5
4c79b5
@enumerate
4c79b5
@item @xref{trunk Identity Themes Models}, to define artworks
4c79b5
characteristics (e.g., dimensions, position on the screen, etc.).
4c79b5
@item @xref{trunk Identity Themes Motifs}, to define artworks visual
4c79b5
styles (e.g., the look and feel).
4c79b5
@item Translations, to define which major releases and locales
4c79b5
artworks are produced for. 
4c79b5
@end enumerate
4c79b5
4c79b5
Inside CentOS Artwork Repository, the artworks' translation production
4c79b5
line is stored under @file{trunk/Translations} directory.
4c79b5
4c79b5
Inside @file{trunk/Translations} directory, we use ``translation
4c79b5
entries'' to organize artworks' ``translation files'' and artworks'
4c79b5
``translation templates''.
4c79b5
4c79b5
@subsubsection Translation Entries
4c79b5
@cindex Translation paths
4c79b5
@cindex Translation entries
4c79b5
4c79b5
Translation entries exists for each artwork you want to produce.
4c79b5
Translation entries can be empty directories, or directories
4c79b5
containing translation files and translation templates.  
4c79b5
4c79b5
When translation entries are empty directories, the identity entry is
4c79b5
used as reference to create file names and directories layout for
4c79b5
rendered files.  In this case, the @command{centos-art} script takes
4c79b5
one design template and outputs one non-translated file for each
4c79b5
design template available.  This configuration is mainly used to
4c79b5
produce non-translatable artworks like themes' backgrounds.
4c79b5
4c79b5
When translation entries contain translation files, the translation
4c79b5
entry implements the CentOS release schema and is used as reference to
4c79b5
create file names and directories layout for translated artworks. In
4c79b5
this case, the @command{centos-art} script applies one translation
4c79b5
file to one design template to create one translated instance which is
4c79b5
used to output one translated file. When the translated file is
4c79b5
rendered, the @command{centos-art} script remove the previous instance
4c79b5
and takes the next file in the list of translation files to repate the
4c79b5
whole process once again, and so on for all files in the list. This
4c79b5
configuration is mainly used to produce translatable artworks like
4c79b5
Anaconda's progress slide images.
4c79b5
4c79b5
To find out correspondence between translation entries and identity
4c79b5
entries, you need to look the path of both translation entries and
4c79b5
identity entries. For example, if you are using the Modern's artisitic
4c79b5
motif, the identity entry for Anaconda progress artwork is:
4c79b5
4c79b5
@verbatim
4c79b5
trunk/Identity/Themes/Motifs/Modern/Distro/Anaconda/Progress
4c79b5
@end verbatim
4c79b5
4c79b5
and its translation entry is:
4c79b5
4c79b5
@verbatim
4c79b5
trunk/Translations/Identity/Themes/Distro/Anaconda/Progress
4c79b5
@end verbatim
4c79b5
4c79b5
Note how the @file{Translations/} directory prefixes @file{Identity/}
4c79b5
directory, also how static values (e.g., Identity, Themes, Distro,
4c79b5
etc.) in the identity's entry path remain in translation's entry path,
4c79b5
and how variable values like theme names (e.g., Modern) are stript out
4c79b5
from translation's entry path. The same convenction can be applied to
4c79b5
other identity entries in order to determine their translation
4c79b5
entries, or to other translation entries to determine their identity
4c79b5
entries.
4c79b5
4c79b5
@quotation
4c79b5
@strong{Note} Translation entries related to identity entries under
4c79b5
@file{trunk/Identity/Themes/Motifs} do not use @file{Motifs/} in the
4c79b5
path.  We've done this because @file{trunk/Identity/Themes/Models}
4c79b5
structure, the other structure under @file{trunk/Identity/Themes},
4c79b5
doesn't require translation paths so far. So in the sake of saving
4c79b5
characters space when building translation entries for
4c79b5
@file{trunk/Identity/Themes/Motifs} structure, we organize Motifs
4c79b5
translation entries under @file{trunk/Translations/Identity/Themes/}
4c79b5
directly. 
4c79b5
4c79b5
If for some reason @file{trunk/Identity/Themes/Models} structure
4c79b5
requires translation entries, we need to re-oraganize the current
4c79b5
directory structure accordingly.
4c79b5
@end quotation
4c79b5
4c79b5
Translation entries, as described above, can be re-used by similar
4c79b5
identity entries. For example the following identity entries:
4c79b5
4c79b5
@verbatim
4c79b5
trunk/Identity/Themes/Motifs/Modern/Distro/Anaconda/Progress/
4c79b5
trunk/Identity/Themes/Motifs/TreeFlower/Distro/Anaconda/Progress/
4c79b5
trunk/Identity/Themes/Motifs/Mettle/Distro/Anaconda/Progress/
4c79b5
@end verbatim
4c79b5
4c79b5
are all valid identity entries able to re-use translation files inside
4c79b5
Anaconda progress translation entry (the one shown in our example
4c79b5
above). This way, you can create several identity entries and maintain
4c79b5
just one translation entry for all of them.  Once you change the
4c79b5
translation files inside the common translation entry, changes inside
4c79b5
identity entries will take effect inside the next you render them.
4c79b5
4c79b5
Trying to make things plain and simple: inside CentOS Artwork
4c79b5
Repository, graphic designers can concentrate their efforts in
4c79b5
artworks look and feel (the identity entries), and translators in
4c79b5
artworks translations (the translation entries).
4c79b5
4c79b5
@subsubsection Translation Markers
4c79b5
@anchor{trunk:Translations:TranslationMarkers}
4c79b5
@cindex Translation markers
4c79b5
4c79b5
Translation markers are used in ``Theme Model Designs'' and
4c79b5
``Translation Files'' as replacement patterns to commit content
4c79b5
translation.  When you are rendering content using
4c79b5
@command{centos-art} script inisde @file{trunk/Identity} structure,
4c79b5
artistic motifs and translation files are applied to model designs to
4c79b5
produce translated content as result. In order to have the appropriate
4c79b5
translation in content rendered, markers defintion in translation
4c79b5
files should match markers in model designs exactly. 
4c79b5
4c79b5
@ifnotinfo
1e9202
@float Figure,fig:trunk/Translations/1
5eb4a2
@image{trunk/Identity/Models/Img/Scripts/renderImage,,,Translation Markers}
4c79b5
@caption{The image rendering flow.}
4c79b5
@end float
4c79b5
@end ifnotinfo
4c79b5
4c79b5
Translation markers can be whatever text you want, but as convenction
4c79b5
we use the following to represent releases of CentOS distribution:
4c79b5
4c79b5
@table @samp
4c79b5
@item =MINOR_RELEASE=
4c79b5
Replace with minor release of CentOS distribution. In the schema M.N, the minor
4c79b5
release is represented by the N letter.
4c79b5
@item =MAJOR_RELEASE=
4c79b5
Replace with major release of CentOS distribution. In the schema M.N,
4c79b5
the major release is represented by the M letter.
4c79b5
@item =RELEASE=
4c79b5
Replace the full release of CentOS distribution. It is
4c79b5
@samp{=MAJOR_RELEASE=.=MINOR_RELEASE=} basically. 
4c79b5
@end table
4c79b5
4c79b5
Specific translation markers convenctions are described inside
4c79b5
specific translation entries. Read translation entries documentation
4c79b5
to know more about supported translation markers.
4c79b5
4c79b5
Translation markers standardization creates a common point of
4c79b5
reference for translators and graphic designers. To have translation
4c79b5
markers well defined makes possible that translators and graphic
4c79b5
designers can work together but independently one another.
4c79b5
4c79b5
@subsubsection Translation Files
4c79b5
@cindex Translation files
4c79b5
4c79b5
Translation files are text files with @command{sed}'s commands inside,
4c79b5
replacement commands mainly. As convenction, translation file names
4c79b5
end in @samp{.sed}. Translation files are used by @command{centos-art}
4c79b5
script to produce translated artworks for specific major releases of
4c79b5
CentOS Distribution. There are common translation files, specific
4c79b5
translation, and template translation files.
4c79b5
4c79b5
For example, the Firstboot artwork of CentOS distribution uses the
4c79b5
images @file{splash-small.png} and @file{firstboot-left.png} as based
4c79b5
to control its visual style. The @file{splash-small.png} image
4c79b5
contains, in its graphic design, the release number information of
4c79b5
CentOS distribution. So the @file{splash-small.png} is
4c79b5
release-specific. In the other hand, the @file{firstboot-left.png}
4c79b5
doesn't contain release number information. So the
4c79b5
@file{firstboot-left.png} is not release-specific.
4c79b5
4c79b5
If we want to produce Firstboot artwork for different major releases
4c79b5
of CentOS distribution, using a monolithic visual identity, all
4c79b5
Firstboot images should have the same visual style and, at the same
4c79b5
time, the release-specific information in the release-specific images. 
4c79b5
4c79b5
@quotation
4c79b5
@strong{Note} The monolithic visual identity is implemented using
4c79b5
theme models (@pxref{trunk Identity Themes Models}) and artistic
4c79b5
motifs (@pxref{trunk Identity Themes Motifs}).
4c79b5
@end quotation
4c79b5
4c79b5
Assuming that both theme models and theme motifs are ready for using,
4c79b5
the initial translation entry to produce Firstboot artworks would look
4c79b5
like the following:
4c79b5
4c79b5
@verbatim
4c79b5
trunk/Translations/Identity/Themes/Distro/BootUp/Firstboot/
4c79b5
|-- Tpl
4c79b5
|   `-- splash-small.sed
4c79b5
`-- firstboot-left.sed
4c79b5
@end verbatim
4c79b5
4c79b5
With the translation entry above, @command{centos-art} command is able
4c79b5
to produce the image @file{firstboot-left.png} only. To produce
4c79b5
@file{splash-small.png} images for major releases (e.g., 3, 4, 5, and
4c79b5
6) of CentOS distribution we need to produce the release-specific
4c79b5
translation files using the @command{centos-art} script as following:
4c79b5
4c79b5
@verbatim
38bcd9
centos-art render --entry=/home/centos/artwork/trunk/Translations/Identity/Themes/BootUp/Firstboot --filter='3,4,5,6'
4c79b5
@end verbatim
4c79b5
4c79b5
The above command produces the following translation entiry:
4c79b5
4c79b5
@verbatim
4c79b5
trunk/Translations/Identity/Themes/Distro/BootUp/Firstboot/
4c79b5
|-- 3
4c79b5
|   `-- splash-small.sed
4c79b5
|-- 4
4c79b5
|   `-- splash-small.sed
4c79b5
|-- 5
4c79b5
|   `-- splash-small.sed
4c79b5
|-- 6
4c79b5
|   `-- splash-small.sed
4c79b5
|-- Tpl
4c79b5
|   `-- splash-small.sed
4c79b5
`-- firstboot-left.sed
4c79b5
@end verbatim
4c79b5
4c79b5
At this point @command{centos-art} is able to produce the Firstboot
4c79b5
artwork images for major releases of CentOS distribution. To add new
4c79b5
release-specific translation files, run the translation rendering
4c79b5
command with the release number you want to produce translation files
4c79b5
for in the @samp{--filter='release-number'} argument.
4c79b5
4c79b5
@subsubsection Template Translation Files
4c79b5
@cindex Template translation files
4c79b5
4c79b5
Template translation files are translation files stored inside
4c79b5
translation template directory. Template translation files are used by
4c79b5
@command{centos-art} script to produce specific translation files
4c79b5
only. Template translation files may be empty or contain
4c79b5
@command{sed}'s replacement commands. If template translation files
4c79b5
are empty files, the final specifc translation file built from it
4c79b5
contains release-specific replacement commands only. For example,
4c79b5
see the following translation entry:
4c79b5
4c79b5
@verbatim
4c79b5
trunk/Translations/Identity/Themes/Distro/BootUp/Firstboot/
4c79b5
|-- 3
4c79b5
|   `-- splash-small.sed
4c79b5
|-- 4
4c79b5
|   `-- splash-small.sed
4c79b5
|-- 5
4c79b5
|   `-- splash-small.sed
4c79b5
|-- 6
4c79b5
|   `-- splash-small.sed
4c79b5
|-- Tpl
4c79b5
|   `-- splash-small.sed    <-- template translation file.
4c79b5
`-- firstboot-left.sed
4c79b5
@end verbatim
4c79b5
4c79b5
In the above exmaple, the @file{splash-small.sed} file is a template
4c79b5
translation file and looks like:
4c79b5
4c79b5
@verbatim
4c79b5
# -------------------------------------
38bcd9
# $Id: splash-small.sed 94 2010-09-18 10:59:42Z al $
4c79b5
# -------------------------------------
4c79b5
@end verbatim
4c79b5
4c79b5
In the above template translation file there are three comments lines,
4c79b5
but when you render it, the @command{centos-art} adds the
4c79b5
release-specific replacement commands. In our Firstboot example, after
4c79b5
rendering Firstboot translation entry, the @file{splash-small.sed}
4c79b5
translation file specific to CentOS 5, looks like the following:
4c79b5
4c79b5
@verbatim
4c79b5
# Warning: Do not modify this file directly. This file is created
4c79b5
# automatically using 'centos-art' command line interface.  Any change
4c79b5
# you do in this file will be lost the next time you update
4c79b5
# translation files using 'centos-art' command line interface. If you
4c79b5
# want to improve the content of this translation file, improve its
4c79b5
# template file instead and run the 'centos-art' command line
4c79b5
# interface later to propagate your changes.
4c79b5
# -------------------------------------
38bcd9
# $Id: splash-small.sed 94 2010-09-18 10:59:42Z al $
4c79b5
# -------------------------------------
4c79b5
4c79b5
# Release number information.
4c79b5
s!=RELEASE=!=MAJOR_RELEASE=.=MINOR_RELEASE=!g
4c79b5
s!=MINOR_RELEASE=!0!g
4c79b5
s!=MAJOR_RELEASE=!5!g
4c79b5
@end verbatim
4c79b5
4c79b5
If template translation files are not empty, replacement commands
4c79b5
inside template translation files are preserved inside
4c79b5
release-specific translation files.  For example, consider the English
4c79b5
template translation file of Anaconda progress welcome slide.  The
4c79b5
translation template directory structure looks like the following:
4c79b5
4c79b5
@verbatim
4c79b5
trunk/Translations/Identity/Themes/Distro/Anaconda/Progress/
4c79b5
`-- Tpl
4c79b5
    `-- en
4c79b5
        `-- 01-welcome.sed
4c79b5
@end verbatim
4c79b5
4c79b5
and if we render translation files for CentOS 4 and CentOS 5 major
4c79b5
releases, the translation entry would look like the following:
4c79b5
4c79b5
@verbatim
4c79b5
trunk/Translations/Identity/Themes/Distro/Anaconda/Progress/
4c79b5
|-- 4
4c79b5
|   `-- en
4c79b5
|       `-- 01-welcome.sed
4c79b5
|-- 5
4c79b5
|   `-- en
4c79b5
|       `-- 01-welcome.sed
4c79b5
`-- Tpl
4c79b5
    `-- en
4c79b5
        `-- 01-welcome.sed
4c79b5
@end verbatim
4c79b5
4c79b5
@quotation
4c79b5
@strong{Note} Release-specific translation directories preserve
4c79b5
template translation directory structure and file names.
4c79b5
@end quotation
4c79b5
4c79b5
In the example above, the template translation file looks like the
4c79b5
following:
4c79b5
4c79b5
@verbatim
4c79b5
# ------------------------------------------------------------
38bcd9
# $Id: 01-welcome.sed 94 2010-09-18 10:59:42Z al $
4c79b5
# ------------------------------------------------------------
4c79b5
s/=TITLE=/Welcome to CentOS =MAJOR_RELEASE= !/
4c79b5
s/=TEXT1=/Thank you for installing CentOS =MAJOR_RELEASE=./
4c79b5
s/=TEXT2=/CentOS is an enterprise-class Linux Distribution derived from sources freely provided to the public by a prominent North American Enterprise Linux vendor./
4c79b5
s/=TEXT3=/CentOS conforms fully with the upstream vendors redistribution policy and aims to be 100% binary compatible. CentOS mainly changes packages to remove upstream vendor branding and artwork./
4c79b5
s/=TEXT4=//
4c79b5
s/=TEXT5=//
4c79b5
s/=TEXT6=//
4c79b5
s!=URL=!http://www.centos.org/!
4c79b5
@end verbatim
4c79b5
4c79b5
and, after render the translation entry, specific translation files
4c79b5
look like the following:
4c79b5
4c79b5
@verbatim
4c79b5
# Warning: Do not modify this file directly. This file is created
4c79b5
# automatically using 'centos-art' command line interface.  Any change
4c79b5
# you do in this file will be lost the next time you update
4c79b5
# translation files using 'centos-art' command line interface. If you
4c79b5
# want to improve the content of this translation file, improve its
4c79b5
# template file instead and run the 'centos-art' command line
4c79b5
# interface later to propagate your changes.
4c79b5
# ------------------------------------------------------------
38bcd9
# $Id: 01-welcome.sed 94 2010-09-18 10:59:42Z al $
4c79b5
# ------------------------------------------------------------
4c79b5
4c79b5
s/=TITLE=/Welcome to CentOS =MAJOR_RELEASE= !/
4c79b5
s/=TEXT1=/Thank you for installing CentOS =MAJOR_RELEASE=./
4c79b5
s/=TEXT2=/CentOS is an enterprise-class Linux Distribution derived from sources freely provided to the public by a prominen t North American Enterprise Linux vendor./
4c79b5
s/=TEXT3=/CentOS conforms fully with the upstream vendors redistribution policy and aims to be 100% binary compatible. Cent OS mainly changes packages to remove upstream vendor branding and artwork./
4c79b5
s/=TEXT4=//
4c79b5
s/=TEXT5=//
4c79b5
s/=TEXT6=//
4c79b5
s!=URL=!http://www.centos.org/!
4c79b5
4c79b5
# Release number information.
4c79b5
s!=RELEASE=!=MAJOR_RELEASE=.=MINOR_RELEASE=!g
4c79b5
s!=MINOR_RELEASE=!0!g
4c79b5
s!=MAJOR_RELEASE=!5!g
4c79b5
@end verbatim
4c79b5
4c79b5
In the example above, relevant lines begin with the @samp{s} word
4c79b5
followed by a separation character (e.g., @samp{/}, @samp{!}, etc.).
4c79b5
These lines have the following format:
4c79b5
4c79b5
@verbatim
4c79b5
s/REGEXP/REPLACEMENT/FLAGS
4c79b5
@end verbatim
4c79b5
4c79b5
The @samp{/} characters may be uniformly replaced by any other single
4c79b5
character within any given @command{s} command.  The @samp{/}
4c79b5
character (or whatever other character is used in its stead) can
4c79b5
appear in the REGEXP or REPLACEMENT only if it is preceded by a
4c79b5
@samp{\} character.
4c79b5
4c79b5
The @command{s} command is probably the most important in
4c79b5
@command{sed} and has a lot of different options.  Its basic concept
4c79b5
is simple: the @command{s} command attempts to match the pattern space
4c79b5
against the supplied REGEXP; if the match is successful, then that
4c79b5
portion of the pattern space which was matched is replaced with
4c79b5
REPLACEMENT.
4c79b5
4c79b5
In the context of our translation files, the REGEXP is where you
4c79b5
define translation markers and REPLACEMENT where you define the
4c79b5
translation text you want to have after artworks rendering.  Sometimes
4c79b5
we use the FLAG component with the @samp{g} command to apply the
4c79b5
replacements globally.
4c79b5
4c79b5
@quotation
4c79b5
@strong{Tip} More information about how to use @command{sed}'s
4c79b5
replacement commands and flags is available in @command{sed}'s
4c79b5
documentation manual. To read sed's documentation manual type the
4c79b5
following command: 
4c79b5
@verbatim
4c79b5
info sed
4c79b5
@end verbatim
4c79b5
@end quotation
4c79b5
4c79b5
Inside translation files, you can use translation markers not only
4c79b5
inside the REGEXP but in the REPLACEMENT too. In order for this
4c79b5
configuration to work, the REPLACEMENT of translation markers needs to
4c79b5
be define @emph{after} its definition. For example, see in the
4c79b5
release-specific translation file above, how the
4c79b5
@samp{s!=MAJOR_RELASE=!5!g} replacement command is defined
4c79b5
@emph{after} @samp{=MAJOR_RELASE=} translation marker definition in
4c79b5
the REPLACEMENT of @samp{=TITLE=} translation marker replacement
4c79b5
command.
4c79b5
4c79b5
@subsubsection Common Translation Files
4c79b5
@cindex Common translation files
4c79b5
4c79b5
Common translation files contain common translations or no
4c79b5
translation at all for their related artworks.  They are in the root
4c79b5
directory of the translation entry. Common translation files create
4c79b5
common artworks for all major releases of CentOS Distribution. 
4c79b5
4c79b5
Translation entries, with common translation files inside, look like
4c79b5
the following:
4c79b5
4c79b5
@verbatim
4c79b5
trunk/Translations/Identity/Themes/Distro/BootUp/Firstboot/
4c79b5
|-- 3
4c79b5
|   `-- splash-small.sed
4c79b5
|-- 4
4c79b5
|   `-- splash-small.sed
4c79b5
|-- 5
4c79b5
|   `-- splash-small.sed
4c79b5
|-- 6
4c79b5
|   `-- splash-small.sed
4c79b5
|-- Tpl
4c79b5
|   `-- splash-small.sed
4c79b5
`-- firstboot-left.sed      <-- common translation file.
4c79b5
@end verbatim
4c79b5
4c79b5
@subsubsection Specific Translation Files
4c79b5
@cindex Specific translation files
4c79b5
4c79b5
Specific translation files contain specific translations for their
4c79b5
related artworks. Specific translation files are not in the root
4c79b5
directory of the translation entry, but inside directories which
4c79b5
describe the type of translation they are doing. Specific translation
4c79b5
files are produced automatically using the @command{centos-art}
4c79b5
script.
4c79b5
4c79b5
@verbatim
4c79b5
trunk/Translations/Identity/Themes/Distro/BootUp/Firstboot/
4c79b5
|-- 3
4c79b5
|   `-- splash-small.sed    <-- CentOS 3 specific translation file.
4c79b5
|-- 4
4c79b5
|   `-- splash-small.sed    <-- CentOS 4 specific translation file.
4c79b5
|-- 5
4c79b5
|   `-- splash-small.sed    <-- CentOS 5 specific translation file.
4c79b5
|-- 6
4c79b5
|   `-- splash-small.sed    <-- CentOS 6 specific translation file.
4c79b5
|-- Tpl
4c79b5
|   `-- splash-small.sed
4c79b5
`-- firstboot-left.sed
4c79b5
@end verbatim
4c79b5
4c79b5
@subsubsection Translation Rendering
4c79b5
@cindex Translation rendering
4c79b5
4c79b5
When rendering translations, the @command{centos-art} script checks
4c79b5
the translation entry to verify that it has a translation template
4c79b5
directory inside. The translation template directory (@file{Tpl/})
4c79b5
contains common translation files used to build release-specific
4c79b5
translation files. If the translation template directory doesn't exist
4c79b5
inside the translation entry the translation rendering fails. In this
4c79b5
case the @command{centos-art} script outputs a message and quits
4c79b5
script execution.
4c79b5
4c79b5
@subsubsection Translation (Pre-)Rendering Configuration Scripts
4c79b5
@cindex Translation configuration scripts
4c79b5
@cindex Translation pre-rendering configuration scripts
4c79b5
4c79b5
When the @command{centos-art} script finds a translation template
4c79b5
directory inside translation entry, it looks for translations
4c79b5
pre-rendering configuration scripts for that translation entry.
4c79b5
Translation pre-rendering configuration scripts let you extend
4c79b5
translation's default functionality (described below). 
4c79b5
4c79b5
Translation pre-rendering configuration scripts are stored under
4c79b5
@file{trunk/Scripts} directory, specifically under the appropriate
4c79b5
language implementation. If you are using @command{centos-art} Bash's
4c79b5
implementation, the translation pre-rendering scripts are store in the
4c79b5
@file{trunk/Scripts/Bash/Config} location; if you are using
4c79b5
@command{centos-art} Python's implementation, then translation
4c79b5
pre-rendering scripts are stored in the
4c79b5
@file{trunk/Scripts/Python/Config} location, and so on for other
4c79b5
implementations.
4c79b5
4c79b5
Bash's translation pre-rendering configuration scripts look like the
4c79b5
following:
4c79b5
4c79b5
@verbatim
4c79b5
#!/bin/bash
4c79b5
#
38bcd9
# render_loadConfig.sh -- brief description here.
4c79b5
#
4c79b5
# Copyright (C) YEAR YOURNAME
4c79b5
# 
4c79b5
# This program is free software; you can redistribute it and/or modify
4c79b5
# it under the terms of the GNU General Public License as published by
4c79b5
# the Free Software Foundation; either version 2 of the License, or
4c79b5
# (at your option) any later version.
4c79b5
# 
4c79b5
# This program is distributed in the hope that it will be useful, but
4c79b5
# WITHOUT ANY WARRANTY; without even the implied warranty of
4c79b5
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
4c79b5
# General Public License for more details.
4c79b5
#
4c79b5
# You should have received a copy of the GNU General Public License
4c79b5
# along with this program; if not, write to the Free Software
4c79b5
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
4c79b5
# USA.
4c79b5
# 
4c79b5
# ----------------------------------------------------------------------
09d4f2
# $Id: render_loadConfig.sh 94 2010-09-18 10:59:42Z al $
4c79b5
# ----------------------------------------------------------------------
4c79b5
38bcd9
function render_loadConfig {
4c79b5
...
4c79b5
}
4c79b5
@end verbatim
4c79b5
4c79b5
Translation pre-rendering scripts are function scripts loaded and
4c79b5
executed when rendering a translation entry. Translation pre-rendering
4c79b5
scripts are loaded using the translation entry being rendered as
4c79b5
reference. For example, suppose you are using the
4c79b5
@command{centos-art} Bash's implementation, and you are rendering
4c79b5
translations for CentOS brands, in this situation the translation
4c79b5
entry would be:
4c79b5
4c79b5
@verbatim
4c79b5
trunk/Translations/Identity/Brands
4c79b5
@end verbatim
4c79b5
4c79b5
and the entry inside the translation pre-rendering configuration
4c79b5
structure would be:
4c79b5
4c79b5
@verbatim
4c79b5
trunk/Scripts/Bash/Config/Identity/Brands
4c79b5
@end verbatim
4c79b5
4c79b5
Once the @command{centos-art} script detects that translation
4c79b5
pre-rendering configuration directory exists, the @command{centos-art}
4c79b5
script looks for the translation pre-rendering configuration file.  If
4c79b5
the translation pre-rendering configuration file exists, it is loaded
4c79b5
and executed.  Once the translation pre-rendering configuration file
4c79b5
has been executed the translation rendering process is over, and so
4c79b5
the script execution.
4c79b5
4c79b5
@quotation
4c79b5
@strong{Note} Translation pre-rendering configuration files have the
4c79b5
following form:
4c79b5
@verbatim
4c79b5
render.conf.extension
4c79b5
@end verbatim
4c79b5
where @samp{extension} refers the programming language implementation
4c79b5
you are using. For example, @samp{sh} for Bash's, @samp{py} for
4c79b5
Python's, @samp{pl} for Perl's, and so on for other implementations.
4c79b5
@end quotation
4c79b5
4c79b5
As we are using Bash implementation to describe the translation
4c79b5
pre-rendering configuration example, the translation pre-rendering
4c79b5
configuration file that @command{centos-art} looks for, inside the
4c79b5
above translation pre-rendering configuration directory, is
4c79b5
@file{render.conf.sh}.
4c79b5
4c79b5
@subsubsection Translation Rendering Default Functionality
4c79b5
@cindex Translation rendering default functionality
4c79b5
4c79b5
In the other hand, if the translation pre-rendering configuration file
4c79b5
doesn't exist, or it isn't written as function script, the
4c79b5
@command{centos-art} script ignore translation pre-rendering
4c79b5
configuration functionality and passes to render translation using
4c79b5
default functionality instead.
4c79b5
4c79b5
The translation rendering default functionality takes template
4c79b5
translation directory structure, duplicates it for each release number
4c79b5
specified in the @samp{--filter='release-number'} argument and
4c79b5
produces release-specific directories. As part of template translation
4c79b5
duplication process take place, the @command{centos-art} script adds
4c79b5
release-specific replacement commands to each specific translation
4c79b5
file inside release-specific directories. As result, specific
4c79b5
translation files, inside release-specific directories, contain
4c79b5
template translation replacement commands @emph{plus},
4c79b5
release-specific replacement commands.
4c79b5
4c79b5
@quotation
4c79b5
@strong{Note} Release-specific replacement commands are standardized
4c79b5
inside @command{centos-art} script using predifined release
4c79b5
translation markers. Release translation markers are described in the
4c79b5
translation marker section
4c79b5
(@pxref{trunk:Translations:TranslationMarkers, Translation Markers}).
4c79b5
@end quotation
4c79b5
4c79b5
@c --- figure required to illustrate this section.
4c79b5
4c79b5
@subsection Usage
4c79b5
@cindex How to render translation files
4c79b5
4c79b5
@table @samp
0b3ba7
@item centos-art render --entry='path/to/dir' 
4c79b5
4c79b5
When @samp{path/to/dir} refers one directory under
4c79b5
@samp{trunk/Translations}, this command orverwrites available
4c79b5
translation files using translation templates.
4c79b5
0b3ba7
@item centos-art render --entry='path/to/dir' --filter='pattern' 
4c79b5
4c79b5
When @samp{path/to/dir} refers one directory under
4c79b5
@file{trunk/Translations}, this command renders release-specific
4c79b5
translation files as you specify in the @samp{--filter='pattern'}
4c79b5
argument. In this case, @samp{pattern} not a regular expression but an
4c79b5
number (e.g., @samp{5}) or a list of numbers separated by commas
4c79b5
(e.g., @samp{3,4,5,6}) that specify the major release of CentOS
4c79b5
distribution you want to render translations for.  
4c79b5
@end table
4c79b5
4c79b5
@subsection See also
4c79b5
4c79b5
@menu
4c79b5
* trunk Translations Identity Brands::
4c79b5
* trunk Translations Identity Fonts::
4c79b5
* trunk Translations Identity Models::
4c79b5
* trunk Translations Identity Release::
4c79b5
* trunk Translations Identity Themes::
4c79b5
* trunk Identity::
4c79b5
@end menu